{"id":18925239,"url":"https://github.com/newca12/haskell-atp","last_synced_at":"2025-04-15T13:32:01.995Z","repository":{"id":9095193,"uuid":"10873213","full_name":"newca12/haskell-atp","owner":"newca12","description":"Examples from John Harrison's \"Handbook of Practical Logic and Automated Reasoning\", ported to Haskell","archived":false,"fork":false,"pushed_at":"2024-06-03T06:56:46.000Z","size":2182,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-28T21:35:34.072Z","etag":null,"topics":["haskell-port","logic"],"latest_commit_sha":null,"homepage":null,"language":"Haskell","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/newca12.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}},"created_at":"2013-06-22T21:53:36.000Z","updated_at":"2024-06-03T06:56:50.000Z","dependencies_parsed_at":"2022-09-01T13:01:46.631Z","dependency_job_id":null,"html_url":"https://github.com/newca12/haskell-atp","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/newca12%2Fhaskell-atp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newca12%2Fhaskell-atp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newca12%2Fhaskell-atp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/newca12%2Fhaskell-atp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/newca12","download_url":"https://codeload.github.com/newca12/haskell-atp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249080222,"owners_count":21209490,"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":["haskell-port","logic"],"created_at":"2024-11-08T11:10:20.275Z","updated_at":"2025-04-15T13:32:01.685Z","avatar_url":"https://github.com/newca12.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# haskell-atp\n\n\n## About ##\nPort of the Objective Caml code supporting John Harrison's logic [textbook](http://www.cambridge.org/catalogue/catalogue.asp?isbn=9780521899574) Handbook of Practical Logic and Automated Reasoning to Haskell.\n\nThe original code written by [Sean McLaughlin](https://github.com/seanmcl) need GHC 6.10.4  \nThis repo contains sligth modifications and instructions to fit GHC upto 9.6.5\n\n## Build and use the atp binary ##\n1. Install GHC and cabal-install via [GHCup](https://www.haskell.org/ghcup) or via [stack](https://docs.haskellstack.org/en/stable) + `stack install cabal-install`\n2.  Update your package database:\n\n        cabal update\n   \n3. Get the required Haskell libraries:\n\n       cabal install --lib directory hslogger utf8-string HUnit QuickCheck parsec syb\n\n4. Build an executable\n\n       cabal install\n\n5. Make sure ~/.cabal/bin is on your path. The atp executable resides there.\n6. Try it !\n```\nuser@dev:$ atp bmeson eq1\nWelcome to Haskell ATP!\n(∀ x y z. x * y * z = (x * y) * z) ∧\n(∀ x. 1 * x = x) ∧ (∀ x. i(x) * x = 1) ⊃\n  (∀ x. x * i(x) = 1)\n[19]\nComputation time: 8.9304 sec\n```\n\n## You can also use ghci ##\n```\ncabal repl\nghci\u003e :l src/Main.lhs\nghci\u003e :main resolution -f \"(exists y. forall x. P(x, y)) ==\u003e forall x. exists y. P(x, y)\"\nWelcome to Haskell ATP!\n(∃ y. ∀ x. P(x, y)) ⊃ (∀ x. ∃ y. P(x, y))\n()\nComputation time: 0.0013 sec\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnewca12%2Fhaskell-atp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnewca12%2Fhaskell-atp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnewca12%2Fhaskell-atp/lists"}