{ "info": { "author": "Ioannis Filippidis", "author_email": "jfilippidis@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Scientific/Engineering" ], "description": "[![Build Status][build_img]][travis]\n[![Coverage Status][coverage]][coveralls]\n\n\nAbout\n=====\n\nA package of symbolic algorithms using binary decision diagrams (BDDs)\nfor synthesizing implementations from [temporal logic specifications][specs].\nThis is useful for designing systems, especially vehicles that carry humans.\n\n\nFeatures\n========\n\n- [Synthesis][synthesis] algorithms for [Moore][moore] or [Mealy][mealy]\n implementations of:\n\n - [generalized Streett(1)][streett1] specifications (known as [GR(1)][gr1])\n - generalized Rabin(1) specifications ([counter-strategies][rabin1] to GR(1))\n - detection of trivial realizability in GR(1) specifications.\n\n See `omega.games.gr1`.\n\n\n- Enumeration of state machines (as `networkx` graphs) from the synthesized\n symbolic implementations. See `omega.games.enumeration`.\n\n\n- Facilities to simulate the resulting implementations with little and\n readable user code. See `omega.steps`.\n\n\n- Code generation for the synthesized *symbolic* implementations.\n This code is correct-by-construction.\n\n\n- [First-order][fol] [linear temporal logic][LTL] (LTL) with\n [rigid quantification][rigid quantification] and substitution.\n See `omega.logic.lexyacc`, `omega.logic.ast`, and `omega.logic.syntax`.\n\n\n- [Bitblaster][bitblasting] of quantified integer arithmetic (integers -> bits).\n See `omega.logic.bitvector`.\n\n\n- Translation from [past][past LTL] to future LTL, using\n [temporal testers][temporal testers]. See `omega.logic.past`.\n\n\n- Symbolic automata that manage first-order formulas by seamlessly using\n [binary decision diagrams][bdd] (BDDs) underneath. You can:\n\n - declare variables and constants\n - translate:\n 1. formulas to BDDs and\n 2. BDDs to *minimal* formulas via minimal covering\n - quantify\n - substitute\n - prime/unprime variables\n - get the support of predicates\n - pick satisfying assignments (or work with iterators)\n - define operators\n\n See `omega.symbolic.temporal` and `omega.symbolic.fol` for more details.\n\n\n- Facilities to write symbolic fixpoint algorithms.\n See `omega.symbolic.fixpoint` and `omega.symbolic.prime`.\n\n\n- Conversion from graphs annotated with formulas to temporal logic formulas.\n These graphs can help specify transition relations.\n The translation is in the spirit of\n [predicate-action diagrams][tla-in-pictures].\n\n See `omega.symbolic.logicizer` and `omega.automata` for more details.\n\n\n- Enumeration and plotting of state predicates and actions represented as BDDs.\n See `omega.symbolic.enumeration`.\n\n\nDocumentation\n=============\n\nIn [`doc/doc.md`][doc].\n\n\nInstallation\n============\n\n```\npip install omega\n```\n\nor\n\n```\npython setup.py install\n```\n\nThe package and its dependencies are pure Python.\n\nFor solving demanding games, install the [Cython][cython] module `dd.cudd`\nthat interfaces to [CUDD][cudd].\nInstructions are available [at `dd`][dd].\n\n\nLicense\n=======\n[BSD-3][bsd3], see `LICENSE` file.\n\n\n[specs]: http://research.microsoft.com/en-us/um/people/lamport/tla/book-02-08-08.pdf\n[synthesis]: http://dx.doi.org/10.1007/BFb0035748\n[moore]: https://web.archive.org/web/20120216141113/http://people.mokk.bme.hu/~kornai/termeszetes/moore_1956.pdf\n[mealy]: http://dx.doi.org/10.1002/j.1538-7305.1955.tb03788.x\n[streett1]: http://dx.doi.org/10.1016/j.ic.2005.01.006\n[gr1]: http://dx.doi.org/10.1007/11609773_24\n[rabin1]: https://online.tugraz.at/tug_online/voe_main2.getvolltext?pCurrPk=47554\n[fol]: https://en.wikipedia.org/wiki/First-order_logic\n[past LTL]: http://dx.doi.org/10.1007/3-540-15648-8_16\n[LTL]: http://dx.doi.org/10.1109/SFCS.1977.32\n[temporal testers]: http://doi.org/10.1007/978-3-540-69850-0_11\n[rigid quantification]: http://dx.doi.org/10.1007/978-1-4612-4222-2\n[bitblasting]: http://dx.doi.org/10.1007/978-3-540-74105-3\n[bdd]: http://dx.doi.org/10.1109/TC.1986.1676819\n[tla-in-pictures]: http://dx.doi.org/10.1109/32.464544\n[doc]: https://github.com/johnyf/omega/blob/master/doc/doc.md\n[cython]: https://en.wikipedia.org/wiki/Cython\n[cudd]: http://vlsi.colorado.edu/~fabio/CUDD\n[dd]: https://github.com/johnyf/dd#cython-bindings\n[bsd3]: http://opensource.org/licenses/BSD-3-Clause\n\n[build_img]: https://travis-ci.org/johnyf/omega.svg?branch=master\n[travis]: https://travis-ci.org/johnyf/omega\n[coverage]: https://coveralls.io/repos/johnyf/omega/badge.svg?branch=master\n[coveralls]: https://coveralls.io/r/johnyf/omega?branch=master", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/johnyf/omega", "keywords": "first-order,propositional,logic,quantifier,forall,exists,fixpoint,mu-calculus,formula,flatten,bitblaster,bitvector,arithmetic,binary decision diagram,symbolic,games,specification,system,assume,guarantee,satisfiability,enumeration,state machine,transition system,automaton,automata,streett,rabin,temporal logic,temporal tester,gr1,generalized reactivity", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "omega", "package_url": "https://pypi.org/project/omega/", "platform": "", "project_url": "https://pypi.org/project/omega/", "project_urls": { "Homepage": "https://github.com/johnyf/omega" }, "release_url": "https://pypi.org/project/omega/0.1.2/", "requires_dist": null, "requires_python": "", "summary": "Symbolic algorithms for solving games of infinite duration.", "version": "0.1.2" }, "last_serial": 3453784, "releases": { "0.0.1": [], "0.0.10": [ { "comment_text": "", "digests": { "md5": "f374a5dba59a864b4f393337adac353d", "sha256": "943d64e0ed4e0022dff880d4a26a1fea33bf1430ad320c86d3abd8eed1b35484" }, "downloads": -1, "filename": "omega-0.0.10.tar.gz", "has_sig": false, "md5_digest": "f374a5dba59a864b4f393337adac353d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80283, "upload_time": "2016-12-30T22:45:52", "url": "https://files.pythonhosted.org/packages/ee/50/fe9d0ed9e72ef3645d024795b20f5f4eb62f16024761b39ea7536578fc22/omega-0.0.10.tar.gz" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "b7dd1e7020537b45ca6759dcd4dc9942", "sha256": "057002517bd2821751cee8ebf5a3c6310180670001f62403a661b2faf7e9a014" }, "downloads": -1, "filename": "omega-0.0.11.tar.gz", "has_sig": false, "md5_digest": "b7dd1e7020537b45ca6759dcd4dc9942", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 82445, "upload_time": "2017-02-14T18:03:24", "url": "https://files.pythonhosted.org/packages/2c/f5/904680ce9c573bda55359eef8cdbe08f2a30fab33cce395537259fd078bb/omega-0.0.11.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "eca88462e1bc33324d3bb890d213ec02", "sha256": "68366935f7efce5b6974f0c7b2fb1b77999e55bcb63a310e29d04be5c0afae5b" }, "downloads": -1, "filename": "omega-0.0.2.tar.gz", "has_sig": false, "md5_digest": "eca88462e1bc33324d3bb890d213ec02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57307, "upload_time": "2015-09-28T03:37:42", "url": "https://files.pythonhosted.org/packages/68/a1/4ddaac4b051cdcf546e6b4936b4da79c70d4550fa3a2feac4ec1886c644f/omega-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "1e4ecd40df84880ae9e0f5c4d1aa8616", "sha256": "dabd8fd64753fd8dbf248cc70b908ed7f1b97dc89fb8fd46e02659841dc5695f" }, "downloads": -1, "filename": "omega-0.0.3.tar.gz", "has_sig": false, "md5_digest": "1e4ecd40df84880ae9e0f5c4d1aa8616", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57334, "upload_time": "2015-10-08T22:55:48", "url": "https://files.pythonhosted.org/packages/dd/1a/64f15ff7830cf52bc9d6fa5e1c14d9cefaa8c8e8e7baa22d085a2d77f13c/omega-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "6070ecdaaa17c41948162f6278bd4788", "sha256": "908994903fccfa66efa9d474db345700278b393e40a529a4772d2a2c9bcc7834" }, "downloads": -1, "filename": "omega-0.0.4.tar.gz", "has_sig": false, "md5_digest": "6070ecdaaa17c41948162f6278bd4788", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57567, "upload_time": "2015-12-26T00:24:10", "url": "https://files.pythonhosted.org/packages/34/df/abcfd26eb7586672876cf5bfa58dc9399e7bb25c3df38fccd5000ddb8999/omega-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "2eed3f786bd46ef98141c774d359c434", "sha256": "0324717fd148ca247d7ff96a13f15744ef3782386f3bccc601b83a5b3a0514e3" }, "downloads": -1, "filename": "omega-0.0.5.tar.gz", "has_sig": false, "md5_digest": "2eed3f786bd46ef98141c774d359c434", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 60043, "upload_time": "2016-01-26T07:19:00", "url": "https://files.pythonhosted.org/packages/8a/4f/c97162f4c9aabc4a810ab3ba6e6e30daa0cf8b5660a745fbc47022350a53/omega-0.0.5.tar.gz" } ], "0.0.6": [], "0.0.7": [ { "comment_text": "", "digests": { "md5": "879e0178d465f408d30c5d4899ea9432", "sha256": "f8eba0d51a5899a3bdfa63cdbe120a023be8967e9881cac3952316889b101ce2" }, "downloads": -1, "filename": "omega-0.0.7.tar.gz", "has_sig": false, "md5_digest": "879e0178d465f408d30c5d4899ea9432", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62236, "upload_time": "2016-02-28T05:09:21", "url": "https://files.pythonhosted.org/packages/3a/67/6da6f35a18cf4acb311d7180b2b836e36a76001239b1b45bab3639aa8e22/omega-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "60452e191dbebc091ac0d326f4f79c65", "sha256": "aafa357cfb4e0becbec61b84dfba3f5507b9be487c330a4cff1862dcceaf13de" }, "downloads": -1, "filename": "omega-0.0.8.tar.gz", "has_sig": false, "md5_digest": "60452e191dbebc091ac0d326f4f79c65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70776, "upload_time": "2016-07-27T11:41:49", "url": "https://files.pythonhosted.org/packages/8f/6e/6b55c2bd350e8c0890a2e1399884d15968caa87c9f9fcbd4870ae4af3f76/omega-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "8bc1526c70cf7e5bc090d5045197ad18", "sha256": "703b68428e1a76a8be0b31d60b51896d50c43f9bd1e17688b1bf7895c38df4c0" }, "downloads": -1, "filename": "omega-0.0.9.tar.gz", "has_sig": false, "md5_digest": "8bc1526c70cf7e5bc090d5045197ad18", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 80810, "upload_time": "2016-08-16T13:00:39", "url": "https://files.pythonhosted.org/packages/b8/9e/9254e3ef211843a325853d2ef26692ff3edeeb7cea02e4712dc448465cba/omega-0.0.9.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "5e0c6a7f8dc18861f170ebf8e4e25e1e", "sha256": "f133e10867bbaedd536592f9b5c3e917253e47db075ea33a431e3f63f991648a" }, "downloads": -1, "filename": "omega-0.1.0.tar.gz", "has_sig": false, "md5_digest": "5e0c6a7f8dc18861f170ebf8e4e25e1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 108030, "upload_time": "2017-03-23T06:03:20", "url": "https://files.pythonhosted.org/packages/6a/da/f096453ccb71004171f39dc68667d2e1c9571455e6e9b35fcae919c4f92a/omega-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "ea1766928c02c5addf8cf461d36e2c03", "sha256": "ecf793cf48ef7a75936dd491371f325de0371a8547c7384c3e98c96f3c49f757" }, "downloads": -1, "filename": "omega-0.1.1.tar.gz", "has_sig": false, "md5_digest": "ea1766928c02c5addf8cf461d36e2c03", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 108681, "upload_time": "2017-06-15T05:56:09", "url": "https://files.pythonhosted.org/packages/a8/01/af791ddff95eb9c6cc0115acb5207a644eb01aab92c2dbd223c702439fce/omega-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "16cd49edec6078534d1f4c6b61ee4cf5", "sha256": "c3f13e6574dc9dff2387a9869430602af1262ca4b435a4baccbe8aac64ed5acb" }, "downloads": -1, "filename": "omega-0.1.2.tar.gz", "has_sig": false, "md5_digest": "16cd49edec6078534d1f4c6b61ee4cf5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 184620, "upload_time": "2017-12-31T23:58:28", "url": "https://files.pythonhosted.org/packages/62/62/840655458bcadf1d5be7b493c5b332c46e76f4e0d6b43b93549f5a6d6d27/omega-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "16cd49edec6078534d1f4c6b61ee4cf5", "sha256": "c3f13e6574dc9dff2387a9869430602af1262ca4b435a4baccbe8aac64ed5acb" }, "downloads": -1, "filename": "omega-0.1.2.tar.gz", "has_sig": false, "md5_digest": "16cd49edec6078534d1f4c6b61ee4cf5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 184620, "upload_time": "2017-12-31T23:58:28", "url": "https://files.pythonhosted.org/packages/62/62/840655458bcadf1d5be7b493c5b332c46e76f4e0d6b43b93549f5a6d6d27/omega-0.1.2.tar.gz" } ] }