{"id":14967756,"url":"https://github.com/surajx/proof-assistant","last_synced_at":"2025-08-17T05:07:36.980Z","repository":{"id":74685216,"uuid":"58247746","full_name":"surajx/proof-assistant","owner":"surajx","description":"Online platform to enable Logic students to write, verify, and store System L style Natural Deduction proofs with real-time proof-checking","archived":false,"fork":false,"pushed_at":"2018-05-23T03:15:09.000Z","size":1304,"stargazers_count":11,"open_issues_count":14,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-07T10:46:04.711Z","etag":null,"topics":["antlr4","jade","mongodb","natural-deduction","nodejs","proof-assistant","proof-checking"],"latest_commit_sha":null,"homepage":"https://proofassist.com","language":"JavaScript","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/surajx.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-05-07T03:40:22.000Z","updated_at":"2024-09-13T15:15:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"de356585-47b5-42fe-b8fa-1c1f69a39a50","html_url":"https://github.com/surajx/proof-assistant","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/surajx/proof-assistant","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surajx%2Fproof-assistant","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surajx%2Fproof-assistant/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surajx%2Fproof-assistant/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surajx%2Fproof-assistant/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/surajx","download_url":"https://codeload.github.com/surajx/proof-assistant/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surajx%2Fproof-assistant/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270807934,"owners_count":24649346,"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","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["antlr4","jade","mongodb","natural-deduction","nodejs","proof-assistant","proof-checking"],"created_at":"2024-09-24T13:38:33.732Z","updated_at":"2025-08-17T05:07:36.956Z","avatar_url":"https://github.com/surajx.png","language":"JavaScript","readme":"# Proof Assistant\n\nAn online platform to enable Logic students to write, verify, and store [System L](https://en.wikipedia.org/wiki/System_L) style Natural Deduction proofs. Proofs are checked for correctness in real-time, and provides informative error messages. The project was developed as part of the [Logic4Fun](https://l4f.cecs.anu.edu.au/) initiative during [Logic Summer School](lss.cecs.anu.edu.au), 2015.\n\n## Features\n* Real-time and in-browser proof validation\n* Server-side proof validation during save using Isomorphic Javascript\n* Ability to continue writing verified proofs even when the Internet connection is lost\n* User account to save and retrieve proofs\n* Informative error messages\n* Fast and easy way of typing logic statements\n\n## Software Stack\n* Javascript\n* Node.js\n* MongoDB\n* ANTLR4\n* Bootstrap\n* Jade\n\n## Contributors\n\n* [Suraj Narayanan Sasikumar](https://www.surajx.in)\n* Boris Repasky\n\n## Getting Started\n\n### Setup an Account\nLogin/SignUp with any valid email. E-mail is just a placeholder for the username, essentially you can give a random valid email and password as long as you can remember it.\n\n### Dashboard\nThe dashboard is where you create new proofs, and also where your existing proofs are listed along with there current status.\n\n![Dashboard](/public/img/dashboard.png)\nThe `NEW PROOF` button brings up a pop-up dialogue where you can enter the [sequent](https://en.wikipedia.org/wiki/Sequent) you want to prove. Typing the sequent is very easy, the following short-keys auto-convert to their equivalent logical connectives as you type.\n* \\n:\u0026nbsp;\u0026nbsp;¬\u0026nbsp;(\u003cu\u003e\u003cb\u003en\u003c/b\u003e\u003c/u\u003eegation)\n* \\a:\u0026nbsp;\u0026nbsp;∧\u0026nbsp;(\u003cu\u003e\u003cb\u003ea\u003c/b\u003e\u003c/u\u003end)\n* \\o:\u0026nbsp;\u0026nbsp;∨\u0026nbsp;(\u003cu\u003e\u003cb\u003eo\u003c/b\u003e\u003c/u\u003er)\n* \\i:\u0026nbsp;\u0026nbsp;→\u0026nbsp;(\u003cu\u003e\u003cb\u003ei\u003c/b\u003e\u003c/u\u003emplication)\n* \\e:\u0026nbsp;\u0026nbsp;⊢\u0026nbsp;(\u003cu\u003e\u003cb\u003ee\u003c/b\u003e\u003c/u\u003entails)\n* \\t:\u0026nbsp;\u0026nbsp;⊤\u0026nbsp;(\u003cu\u003e\u003cb\u003et\u003c/b\u003e\u003c/u\u003erue)\n* \\f:\u0026nbsp;\u0026nbsp;⊥\u0026nbsp;(\u003cu\u003e\u003cb\u003ef\u003c/b\u003e\u003c/u\u003ealse)\n\nExample: The sequent \"¬(p → q) ⊢ p ∧ ¬q\" should be typed as \"\\n(p \\i q) \\e p \\a \\nq\". It may look daunting at first, but as you type, it'll becomes natural.\n\n![New Proof](/public/img/create_new_proof.png)\n\n### Proof Page\nThis is the page where you actually write the proof. All premises of the sequent is auto-populated for you as assumption lines.\n\n![Proof Page](/public/img/proof_page.png)\n\nThe next proof line is entered using the fields provided at the bottom. The same short-keys mentioned earlier can be used to type in the connectives. Also, it is not necessary to press the `+` button every time, pressing the enter key on any of the input fields submits your  new proof line for validation. If you dont know what these fields are please read the excellent [introduction](http://users.cecs.anu.edu.au/~jks/LogicNotes/index.html) to Propositional Logic and System L style Natural Deduction proofs by Prof. John Slaney.\n\nThe platform also provides the ability to delete or edit rows, provided the change does not break the validity of the proof. When a proof line is deleted or edited the proof is \u003cu\u003enot\u003c/u\u003e auto-saved on the server. You can see that the `SAVE` button would be now red in color, indicating an unsaved proof.\n\n### Error Messages\nSubmission of the new proof line triggers validation of the entire proof. Only if the entire proof is valid, the new proof line is added. In case of an invalid proof line, a corresponding error message is displayed.\n\n![Error Message](/public/img/error_message.png)\n\n### Features\nThe proof is validated in-browser, i.e. the proof is not sent to the server each time a line is added. This allows fast verification of large proofs and also the ability to use the tool offline. If an internet connection is available, any change made to the proof is auto-saved on the server. The colour of the `SAVE` button indicates whether the proof was successfully saved on the server or not. A green `SAVE` button indicates that the latest proof is saved, while a red `SAVE` button indicates that there are some changes in the proof that are not saved in the server. Note that on each save request the proof is validated on the server-side as well.\n\nWhen the line that completes the proof is entered, and the proof is validated, the status of the proof changes to `SUCCESS`.\n\n![Success](/public/img/write_proof.png)\n\nEnjoy Natural Deductions!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsurajx%2Fproof-assistant","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsurajx%2Fproof-assistant","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsurajx%2Fproof-assistant/lists"}