{"id":16661254,"url":"https://github.com/snowleopard/bbforce","last_synced_at":"2025-08-02T03:35:18.230Z","repository":{"id":10364509,"uuid":"12505644","full_name":"snowleopard/bbforce","owner":"snowleopard","description":"Boolean Brute Force","archived":false,"fork":false,"pushed_at":"2013-09-01T19:42:56.000Z","size":148,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-12T21:17:09.010Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/snowleopard.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-08-31T13:14:45.000Z","updated_at":"2019-12-05T06:32:59.000Z","dependencies_parsed_at":"2022-09-10T15:41:34.697Z","dependency_job_id":null,"html_url":"https://github.com/snowleopard/bbforce","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/snowleopard/bbforce","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snowleopard%2Fbbforce","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snowleopard%2Fbbforce/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snowleopard%2Fbbforce/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snowleopard%2Fbbforce/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/snowleopard","download_url":"https://codeload.github.com/snowleopard/bbforce/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snowleopard%2Fbbforce/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268331053,"owners_count":24233166,"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-02T02:00:12.353Z","response_time":74,"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":[],"created_at":"2024-10-12T10:34:19.659Z","updated_at":"2025-08-02T03:35:18.199Z","avatar_url":"https://github.com/snowleopard.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"bbforce (Boolean Brute Force)\n=============================\n\n[This](https://github.com/snowleopard/bbforce/blob/master/bbforce.hs) is a brute force solver for the first part of the following [puzzle from MIT Tech Review](http://www.technologyreview.com/sites/default/files/magazine/mitnews/puzzlecorner/MA13MITPuzzleCorner.pdf):\n\n\u003eHoward Cohen has plenty of AND and OR gates but just two inverters. How can he invert three signals a, b, and c?\n\n\u003eMore generally, he wonders if the ratio I/S can ever be less than 2/3, where I is the number of inverters and S is the number of signals to invert (once again, unlimited AND and OR gates are available).\n\nThe generated solution can be found [here](https://github.com/snowleopard/bbforce/blob/master/Solution.md) (spoiler alert!).\n\nTo answer the second part of the puzzle note that the obtained circuit is functionally nothing else than just three inverters. That is, having an unlimited number of ANDs and ORs we can get three inverters from two inverters. But then nothing prevents us from applying the same step again resulting in four inverters, etc. Hence, rather surprisingly the ratio can be made arbitrarily small: two inverters are enough to invert as many signals as we need!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnowleopard%2Fbbforce","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsnowleopard%2Fbbforce","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnowleopard%2Fbbforce/lists"}