{"id":21989651,"url":"https://github.com/gpetiot/frama-c-stady","last_synced_at":"2025-07-23T00:31:37.217Z","repository":{"id":161598557,"uuid":"99078502","full_name":"gpetiot/Frama-C-StaDy","owner":"gpetiot","description":"Static \u0026 Dynamic Verification of C programs","archived":true,"fork":false,"pushed_at":"2019-10-05T04:04:43.000Z","size":2414,"stargazers_count":9,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-31T07:15:55.821Z","etag":null,"topics":["acsl","frama-c","software-verification"],"latest_commit_sha":null,"homepage":"","language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gpetiot.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":"2017-08-02T06:04:48.000Z","updated_at":"2024-08-24T22:54:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"fbbe537a-d22e-440b-91a0-3f7397869c8c","html_url":"https://github.com/gpetiot/Frama-C-StaDy","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/gpetiot/Frama-C-StaDy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gpetiot%2FFrama-C-StaDy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gpetiot%2FFrama-C-StaDy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gpetiot%2FFrama-C-StaDy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gpetiot%2FFrama-C-StaDy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gpetiot","download_url":"https://codeload.github.com/gpetiot/Frama-C-StaDy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gpetiot%2FFrama-C-StaDy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266596689,"owners_count":23953891,"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-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":["acsl","frama-c","software-verification"],"created_at":"2024-11-29T19:31:56.226Z","updated_at":"2025-07-23T00:31:37.161Z","avatar_url":"https://github.com/gpetiot.png","language":"OCaml","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# StaDy plugin for Frama-C\n\nThis is the repository for the StaDy plugin for [Frama-C](http://www.frama-c.com/).\nStaDy instruments C programs so that proof failures (see the [WP plugin](http://www.frama-c.com/wp.html)) can be diagnosed thanks to automatic test generation (see the [PathCrawler plugin](http://www.frama-c.com/pathcrawler.html)).\n\nHere are the corresponding versions of Frama-C and PathCrawler for each version of StaDy:\n\n| Frama-C        |  StaDy   | PathCrawler (commit ID)                  |\n| -------------- | -------- | ---------------------------------------- |\n| v14 Silicon    |  v0.2.3  | bbb76c32b22e2eb4f5777196ade9e2eba2c2ad66 |\n| v15 Phosphorus |  v0.3.0  | 3be1d9f39982f4ce05c243096020025b5c1d0aec |\n| v16 Sulfur     |  v0.4.3  | 62dd256d2a4225a7507287019ae5b11ca9d02075 |\n| v19 Potassium  |  v0.5.x  | **this release has not been tested yet** |\n\n[Here](https://github.com/gpetiot/StaDy) are the programs used for benchmarking StaDy.\n\n\n## Building\n\n    autoconf\n    ./configure\n    make\n    make install\n\n\n## Using StaDy\n\nThe two main features of StaDy are the non-compliance detection (NCD) and the\nsubcontract weakness detection (SWD).\nSee the [documentation](doc/README.md) for more details.\n\n### Non-compliance detection\n\nStaDy tries to exhibit a test case whose execution provokes an annotation violation. Non-compliance detection is the default mode of StaDy. One can detect non-compliances between the code and its specification in file F, starting with function M, using the command:\n\n    frama-c F -main M -stady\n\nIn the user interface of Frama-C, an annotation violation is pictured with a red bullet.\n\n### Subcontract weakness detection\n\nStaDy tries to exhibit a test case whose execution does not provoke an annotation violation but that is not proved by deductive verification because of a too weak subcontract (loop invariant or called function contract). The subcontract weakness detection in file F starting with function M is done with:\n\n    frama-c F -main M -stady -stady-swd some_loop,some_function_call\n\nwhere 'some_loop' and 'some_function_call' are labels referring to loops or\nfunction calls, and you want to replace their code with their specification to\nexhibit a contract weakness.\nFor now, there is no strategy or heuristic implemented in StaDy to automatically submit a set of subcontract identifiers.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgpetiot%2Fframa-c-stady","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgpetiot%2Fframa-c-stady","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgpetiot%2Fframa-c-stady/lists"}