{"id":27286269,"url":"https://github.com/rec0de/obdd-gen","last_synced_at":"2025-10-15T16:12:51.439Z","repository":{"id":78520191,"uuid":"368552969","full_name":"rec0de/obdd-gen","owner":"rec0de","description":"Parses boolean logic formulas into ordered binary decision trees","archived":false,"fork":false,"pushed_at":"2024-07-26T08:42:34.000Z","size":789,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-11T19:46:42.106Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rec0de.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,"zenodo":null}},"created_at":"2021-05-18T14:05:42.000Z","updated_at":"2024-07-26T08:42:38.000Z","dependencies_parsed_at":"2025-04-11T19:42:52.300Z","dependency_job_id":"50a88eca-87d3-490c-8a00-45fd73df74bc","html_url":"https://github.com/rec0de/obdd-gen","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/rec0de/obdd-gen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rec0de%2Fobdd-gen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rec0de%2Fobdd-gen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rec0de%2Fobdd-gen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rec0de%2Fobdd-gen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rec0de","download_url":"https://codeload.github.com/rec0de/obdd-gen/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rec0de%2Fobdd-gen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275128948,"owners_count":25410374,"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-09-14T02:00:10.474Z","response_time":75,"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":"2025-04-11T19:35:43.535Z","updated_at":"2025-10-15T16:12:46.368Z","avatar_url":"https://github.com/rec0de.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# obdd-gen\n\nobdd-gen is a tool to generate Ordered Binary Decision Diagrams or (O)BDDs from boolean logic formulas. Additionally, obdd-gen includes an experimental tool for LUT-mapping based on QRBDDs.\n\n## Building\n\nTo build an executable jar, run\n`gradle assemble \u0026\u0026 gradle shadowJar`. The executable will be located in `build/libs/`.  \n\n## Formula Input\n\nThe boolean formula input format looks like this: `!(a -\u003e b) \u0026 (c \u003c=\u003e d | e) ^ !a`. The usual associativity and precedence rules apply.\n\n## BDD / QRBDD Generation\n\nBuilds a BDD from the given boolean formula, producing a DOT graph or JSON representation of the BDD.\n\n```\njava -jar obdd-gen.jar [flags] [formula]\nFlags:\n--naive         Use naive BDD generation (slow, bad)\n--reduce        Produce fully reduced BDD\n--quasireduce   Produce quasi-reduced BDD\n--json          Output JSON rather than DOT\n--out=[path]    Output location, default bdd.dot/bdd.json\n--order=[order] Specify variable evaluation order\n        none        Use variables in order of appearance\n        weight      Use variable weight heuristic\n        count       Use variables in order of global count\n        subgraph    Use subgraph complexity heuristic\n        a,b,c       Use custom variable order\n```\n\n## LUT Mapping\n\nLUT mapping maps a BLIF input file to an equivalent BLIF output that is composed only of 5-input (or smaller) look-up tables, optimizing for the smallest number of LUTs.\n\n**Note:** The BLIF parser currently only supports a small subset of BLIF. Inputs should be plain networks of logic gates using ON-set specification. Generic latches are somewhat supported.\n\n```\njava -jar obdd-gen.jar --blif-map [flags] [input.blif]\nFlags:\n--lutcap=[n]        Set maximum LUT input size (default 5)\n--loglevel=[0-5]    Set verbosity 5=silent 0=full default 4\n--out=[path]        Output location, default mapped.blif\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frec0de%2Fobdd-gen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frec0de%2Fobdd-gen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frec0de%2Fobdd-gen/lists"}