{"id":21145568,"url":"https://github.com/boschmitt/satomi","last_synced_at":"2025-03-14T13:42:53.861Z","repository":{"id":85781615,"uuid":"90568547","full_name":"boschmitt/satomi","owner":"boschmitt","description":"Yet another SAT solver developed in C. ","archived":false,"fork":false,"pushed_at":"2017-05-08T14:00:37.000Z","size":65,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-21T07:27:49.864Z","etag":null,"topics":["c","sat-solver","satisfiability"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/boschmitt.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":"2017-05-07T23:34:25.000Z","updated_at":"2017-05-08T04:23:14.000Z","dependencies_parsed_at":"2023-03-04T00:01:01.604Z","dependency_job_id":null,"html_url":"https://github.com/boschmitt/satomi","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/boschmitt%2Fsatomi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boschmitt%2Fsatomi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boschmitt%2Fsatomi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boschmitt%2Fsatomi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/boschmitt","download_url":"https://codeload.github.com/boschmitt/satomi/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243589272,"owners_count":20315467,"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":["c","sat-solver","satisfiability"],"created_at":"2024-11-20T08:42:04.785Z","updated_at":"2025-03-14T13:42:53.823Z","avatar_url":"https://github.com/boschmitt.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Satomi\n\nSatomi is a SAT solver developed for my own education as I venture in the world\nof EDA and CAD tools. My intent it to evolve this solver as I learn different\napproaches and techniques. \n\n## Version 2\n\n## Clauses and Clauses Database\nEach clause is represented by its current size and by an array of literals,\nboth of which are continuously allocated. All clauses are stored in one big array\nof 32-bits integers, called **clauses database**. Each clause is created by \nreserving the necessary space and returning an index (cref) to its first 32-bit\ninteger.\n\nA small trick is used to access clauses information: an interface struct is\ndeclared with an zero-sized array at the end:\n\n```c\nstruct clause {\n\tuint32_t size;\n\tuint32_t lits[0];\n};\n```\n\nThen a clause handler (`struct clause *`) can be retrived by using the index and\ncasting the pointer to the first 32-bit integer (`uint32_t *`) to the interface\nstruct.\n\n## References\nPapers:\n* Davis, P., and Putnam, H. A Computing Procedure for Quantification Theory. \n  Journal of the ACM (1960).\n* Davis, P., Logemann, G., and Loveland, D. A Machine Program for Theorem Proving.\n  Communications of the ACM (1962)\n* Matthew W. Moskewicz, Conor F. Madigan, Ying Zhao, Lintao Zhang, and Sharad Malik.\n  2001. Chaff: engineering an efficient SAT solver. In Proceedings of the 38th annual\n  Design Automation Conference (DAC '01). ACM, New York, NY, USA, 530-535.\n* Chu, Geoffrey, Aaron Harwood, and Peter J. Stuckey. \"Cache conscious data structures\n  for boolean satisfiability solvers.\" Journal on Satisfiability, Boolean Modeling and\n  Computation 6 (2008): 99-120.\n* Sorensson, Niklas. \"Minisat 2.2 and minisat++ 1.1.\" A short description in SAT Race \n  2010 (2010).\n\nBooks:\n* The Art of Computer Programming, Volume 4, Fascicle 6: Satisfiability by \n  Donald E. Knuth \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboschmitt%2Fsatomi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fboschmitt%2Fsatomi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboschmitt%2Fsatomi/lists"}