{"id":15719096,"url":"https://github.com/florianschanda/pyvcg","last_synced_at":"2025-05-13T02:26:25.822Z","repository":{"id":177986847,"uuid":"660488207","full_name":"florianschanda/PyVCG","owner":"florianschanda","description":"Verification Condition Generator","archived":false,"fork":false,"pushed_at":"2024-08-15T12:17:28.000Z","size":97,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-28T21:58:30.414Z","etag":null,"topics":["formal-methods","formal-verification","smtlib"],"latest_commit_sha":null,"homepage":"","language":"Python","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/florianschanda.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2023-06-30T05:59:12.000Z","updated_at":"2024-08-15T12:17:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"a32164dd-7f6f-48a8-9b96-232166101dd9","html_url":"https://github.com/florianschanda/PyVCG","commit_stats":null,"previous_names":["florianschanda/pyvcg"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/florianschanda%2FPyVCG","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/florianschanda%2FPyVCG/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/florianschanda%2FPyVCG/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/florianschanda%2FPyVCG/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/florianschanda","download_url":"https://codeload.github.com/florianschanda/PyVCG/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253858506,"owners_count":21974934,"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":["formal-methods","formal-verification","smtlib"],"created_at":"2024-10-03T21:54:43.315Z","updated_at":"2025-05-13T02:26:25.787Z","avatar_url":"https://github.com/florianschanda.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Verification Condition Generator\n\nPyVCG is a utility library to generate VCs directly for\n[CVC5](https://cvc5.github.io) or standard-compliant\n[SMTLIB2](http://smtlib.cs.uiowa.edu/). The interface is deliberately\ngeneric and it should be easy to add API support for other solvers in\nthe future.\n\nThis is pretty limited for now as the initial target is the expression\nlanguage of [TRLC](https://github.com/bmw-software-engineering/trlc).\n\nPlease refer to the [Changelog](CHANGELOG.md) for what's new.\n\n## Features\n\nThis library provides a wrapper around SMTLIB with some additional\nfeatures:\n\n* SMTLIB Scripts\n* Automatic (minimal) logic discovery\n* Basic sorts: Bool,\n  [Int](https://smtlib.cs.uiowa.edu/theories-Ints.shtml),\n  [Real](https://smtlib.cs.uiowa.edu/theories-Reals.shtml), and\n  [String](https://cvc5.github.io/docs-ci/docs-main/theories/strings.html)\n* Parametric sorts:\n  [Sequences](https://cvc5.github.io/docs-ci/docs-main/theories/sequences.html)\n* Datatype sorts: Enumerations and Records\n* Uninterpreted functions\n* Quantifiers\n* Boolean expressions: not, and, or, xor, implication\n* If-then-else expressions\n* Comparisons: =, \u003c, \u003e, \u003c=, \u003e=\n* Int -\u003e Real conversion\n* Real -\u003e Int conversion (smtlib rounding (round-to-negative) and\n  arithmetic rounding (round-nearest-away))\n* Unary arithmetic: -, abs\n* Binary Int arithmetic: +, -, *, smtlib div, smtlib mod, python div,\n  ada remainder\n* Binary Real arithmetic: +, -, *, /\n* String operations: length, contains, prefix, suffix, concatenation\n* Sequence operations: length, contains, access, concatenation\n* Record operations: access\n\nIn addition this library provides a graph to build VCs with multiple\npaths; and generating VCs for all paths. FastWP and higher-level\nmodelling for language features (e.g. ite, loops) are planned later.\n\n## Drivers\n\nCurrent support for outputs:\n\n* SMTLIB (for writing and debugging)\n* CVC5 API (for solving)\n\n## Dependencies\n\n### Run-time\n\n* Python \u003e= 3.8\n* [cvc5](https://pypi.org/project/cvc5)\n\n### Development\n\n* [GNU Make](https://www.gnu.org/software/make)\n* [coverage](https://pypi.org/project/coverage)\n* [pycodestyle](https://pypi.org/project/pycodestyle)\n* [pylint](https://pypi.org/project/pylint)\n\n## Copyright \u0026 License\n\nThe sole copyright holder is Florian Schanda.\n\nThis library is licensed under the [GNU GPL version 3](LICENSE) (or\nlater).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflorianschanda%2Fpyvcg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflorianschanda%2Fpyvcg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflorianschanda%2Fpyvcg/lists"}