{"id":17229384,"url":"https://github.com/fpoli/ctlmc","last_synced_at":"2025-08-24T02:21:52.282Z","repository":{"id":29338122,"uuid":"32871967","full_name":"fpoli/ctlmc","owner":"fpoli","description":"CTL model checker, implemented using BDDs (JavaBDD library)","archived":false,"fork":false,"pushed_at":"2015-06-24T21:49:00.000Z","size":552,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-01-30T16:48:04.366Z","etag":null,"topics":["bdd","ctl","model-checking","scala"],"latest_commit_sha":null,"homepage":"","language":"Scala","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/fpoli.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}},"created_at":"2015-03-25T15:06:43.000Z","updated_at":"2023-10-02T14:33:49.000Z","dependencies_parsed_at":"2022-09-20T07:41:05.891Z","dependency_job_id":null,"html_url":"https://github.com/fpoli/ctlmc","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/fpoli%2Fctlmc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fpoli%2Fctlmc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fpoli%2Fctlmc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fpoli%2Fctlmc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fpoli","download_url":"https://codeload.github.com/fpoli/ctlmc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245526519,"owners_count":20629837,"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":["bdd","ctl","model-checking","scala"],"created_at":"2024-10-15T04:47:45.501Z","updated_at":"2025-03-25T19:19:20.227Z","avatar_url":"https://github.com/fpoli.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"CTL model checking\r\n==================\r\n\r\n[*CTL*](https://en.wikipedia.org/wiki/Computation_tree_logic)\r\n[model checking](https://en.wikipedia.org/wiki/Model_checking),\r\nimplemented using\r\n[BDDs](https://en.wikipedia.org/wiki/Binary_decision_diagram)\r\n([JavaBDD](http://javabdd.sourceforge.net/) library).\r\n\r\n[![Build Status](https://travis-ci.org/fpoli/ctlmc.svg?branch=master)](https://travis-ci.org/fpoli/ctlmc)\r\n\r\n## Usage\r\n\r\n    Usage: program (CTL specification) (path to model file)\r\n    e.g.: program 'AG(Not(And(\"c1\"=\"T\", \"c2\"=\"T\")))' \"model.fsm\"\r\n\r\nArguments:\r\n\r\n1. CTL specification (e.g. `Imply(AG(\"t1\"=\"T\"), AF(\"c1\"=\"T\"))`);\r\n2. path to model file, in the [FSM format](http://www.mcrl2.org/release/user_manual/language_reference/lts.html) with the following restriction:\r\n    - all the states must be univocally identified by the value of their atomic propositions.\r\n\r\n## Quick start\r\n\r\n1. Install [Scala](http://www.scala-lang.org/) and [sbt](http://www.scala-sbt.org/)\r\n2. Run tests with `make test`\r\n3. Prepare jar package with `make package`\r\n4. Run demo with `java -jar /path/to/ctl-model-checking.jar 'AG(Not(And(\"c1\"=\"T\", \"c2\"=\"T\")))' ./src/test/resources/mutual-exclusion.fsm`\r\n\r\n## Example (output)\r\n\r\n    === CTL Model Checking ===\r\n    (*) Parsing CTL specification AG(Not(And(\"c1\"=\"T\", \"c2\"=\"T\"))) ...\r\n    (*) Parsing FSM model ./src/test/resources/mutual-exclusion.fsm ...\r\n     - 9 atomic propositions\r\n     - 9 states\r\n     - 14 transitions\r\n    (*) Model checking...\r\n    [OK] The model satisfies the specification\r\n\r\n## License\r\n\r\nCopyright (C) 2015 Federico Poli \u003cfederpoli@gmail.com\u003e\r\n\r\nReleased under the GNU General Public License, version 3\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffpoli%2Fctlmc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffpoli%2Fctlmc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffpoli%2Fctlmc/lists"}