{ "info": { "author": "Imandra", "author_email": "kostya@aestheticintegration.com", "bugtrack_url": null, "classifiers": [ "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "`imandra` is a Python client for [Imandra](https://www.imandra.ai/) - a cloud-native automated reasoning engine built on the latest advances in formal verification and symbolic reasoning.\n\n## Usage\n\nThe client idiomatically exposes the Imandra Iterative Decomposition Framework (IDF) functionality to decompose state-transition algorithms. The client accepts a string containing the Python code to decompose - see [the documentation](https://docs.imandra.ai/idf-py/) to learn how to write accepted model code: \n\n```python\ncode = \"\"\"\nclass State:\n def __init__(self):\n self.x : int = 0\n def receive_Update(self, v : int):\n self.x : int = v\n\nscenario = [ 'Update' , 'Update' ]\n\"\"\"\n```\n\nYou can launch an IDF decomposition job in the cloud with `imandra.idf.decompose`, passing it the code string:\n```python\nfrom imandra import idf\ndecomposition = idf.decompose(code)\n```\nUsing the `decomposition` object as a handle, you can check the status of the job which can be in `queued`, `processing`, `done` or `error` status:\n```python\nprint(decomposition.status())\n``` \n\nWhen the decomposition job is finished, you can obtain the generated Python code for the regions:\n\n```python\n# Create a separate Python function per region predicate \nprint(decomposition.dumps(kind='flat'))\n# Create a single optimized function that returns a region number\nprint(decomposition.dumps(kind='tree'))\n```\n\n\n\n## Links\n - [Imandra Python Documentation](https://docs.imandra.ai/idf-py/)\n - [Imandra Project Homepage](https://www.imandra.ai/)\n - [Describing Algorithms: Introduction](https://medium.com/imandra/describing-algorithms-introduction-8d8224a0f920)\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://imandra.ai", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "imandra", "package_url": "https://pypi.org/project/imandra/", "platform": "", "project_url": "https://pypi.org/project/imandra/", "project_urls": { "Homepage": "http://imandra.ai" }, "release_url": "https://pypi.org/project/imandra/0.1.12/", "requires_dist": [ "requests" ], "requires_python": "", "summary": "Python interface to Imandra (cloud-native automated reasoning engine for analysis of algorithms)", "version": "0.1.12", "yanked": false, "yanked_reason": null }, "last_serial": 6022513, "releases": { "0.1.10": [ { "comment_text": "", "digests": { "md5": "3e4d2640eecc9689a6142eddf49e1853", "sha256": "5c2f41b6ca40c46c8a156827b2a0ba62c16021ff3c8c48a69139875feaf0f6ee" }, "downloads": -1, "filename": "imandra-0.1.10-py3-none-any.whl", "has_sig": false, "md5_digest": "3e4d2640eecc9689a6142eddf49e1853", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10336, "upload_time": "2019-09-23T09:50:36", "upload_time_iso_8601": "2019-09-23T09:50:36.443126Z", "url": "https://files.pythonhosted.org/packages/68/82/a97923e3971649589668508a523cf2ffe7cfc484e0cde38f275706508b43/imandra-0.1.10-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "996d225295fdbee7e878ded26bf678d6", "sha256": "85dedaf4eff035ab9306e17c59a0cca2c4656cf3e1f6efbe8f2e727a835935f5" }, "downloads": -1, "filename": "imandra-0.1.10.tar.gz", "has_sig": false, "md5_digest": "996d225295fdbee7e878ded26bf678d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4917, "upload_time": "2019-09-23T09:50:37", "upload_time_iso_8601": "2019-09-23T09:50:37.844204Z", "url": "https://files.pythonhosted.org/packages/59/89/efc30d6fd3c1ea3503fda7f232e20fa30ade62ca1e51a78c35ab1e9dc621/imandra-0.1.10.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "88b4fe62abbc0d0018b8af17fb5fb25b", "sha256": "940ee22f36dc10bc8195272d7be270d19f81c9cca00f2f7538be8ec8e0bea514" }, "downloads": -1, "filename": "imandra-0.1.11-py3-none-any.whl", "has_sig": false, "md5_digest": "88b4fe62abbc0d0018b8af17fb5fb25b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10343, "upload_time": "2019-10-02T14:08:17", "upload_time_iso_8601": "2019-10-02T14:08:17.719580Z", "url": "https://files.pythonhosted.org/packages/ce/45/dc8c79ede34f0e9e0b955f8d5c23e5bb0ccca8d59006cdcebecf75e9e996/imandra-0.1.11-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "3cff78eae67c3073478488cee5699b5f", "sha256": "e121edddadfb11fffc50b0bb5b899f1b696b18bea08cdd7c08ebbfd33da9252b" }, "downloads": -1, "filename": "imandra-0.1.11.tar.gz", "has_sig": false, "md5_digest": "3cff78eae67c3073478488cee5699b5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4920, "upload_time": "2019-10-02T14:08:21", "upload_time_iso_8601": "2019-10-02T14:08:21.314370Z", "url": "https://files.pythonhosted.org/packages/d9/94/a876a73bc0652f76069ad586dc06f97f2169b5f354a0fa6480fd55cb56b1/imandra-0.1.11.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "ad46eec4029251dee0f7bcab1733c801", "sha256": "c8fb9c984f88da41da53a2738d98a646501cba3788be8e59ce4c1bf532e64bd5" }, "downloads": -1, "filename": "imandra-0.1.12-py3-none-any.whl", "has_sig": false, "md5_digest": "ad46eec4029251dee0f7bcab1733c801", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10341, "upload_time": "2019-10-24T08:55:54", "upload_time_iso_8601": "2019-10-24T08:55:54.635419Z", "url": "https://files.pythonhosted.org/packages/d2/9a/5e88bef599fb29bbc79fa90b442c9bc8684bd3e872cdda84f8f62a897253/imandra-0.1.12-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "832c76f5edd90451edd981fe219108a4", "sha256": "294b1439a2d6dba52cd9f8506834437a17ba90d4bdffa08d5cd5c85bcc912527" }, "downloads": -1, "filename": "imandra-0.1.12.tar.gz", "has_sig": false, "md5_digest": "832c76f5edd90451edd981fe219108a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4930, "upload_time": "2019-10-24T08:55:56", "upload_time_iso_8601": "2019-10-24T08:55:56.900522Z", "url": "https://files.pythonhosted.org/packages/d5/f2/ac4a14322331cd8f9b097729cc77431abfca8305d74ad91f069475e3bb30/imandra-0.1.12.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "08bfb57d0701985fafcf41a3ea731c04", "sha256": "30e2fdb107964061e765814f34de28effcd6389d981277ae23615b53b95bf278" }, "downloads": -1, "filename": "imandra-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "08bfb57d0701985fafcf41a3ea731c04", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8058, "upload_time": "2019-08-01T15:31:26", "upload_time_iso_8601": "2019-08-01T15:31:26.880048Z", "url": "https://files.pythonhosted.org/packages/ab/15/5869f913d3290163e477aed1965d9dce68676bb2c6fcd9240ad1896773f8/imandra-0.1.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "56c62ec9408cff7a119b434aca014c19", "sha256": "3cf9a1e4ab1105c20d647ae2f8a74fd6efaa30b11afbb748eedbef2ee0d0ef0c" }, "downloads": -1, "filename": "imandra-0.1.3.tar.gz", "has_sig": false, "md5_digest": "56c62ec9408cff7a119b434aca014c19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3140, "upload_time": "2019-08-01T15:31:29", "upload_time_iso_8601": "2019-08-01T15:31:29.114790Z", "url": "https://files.pythonhosted.org/packages/bf/4d/ae7ed042215314ce9bb17392d928f79a811cf7b040fcf5a2892aca89d283/imandra-0.1.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "b0263571b4ed743d247e256a813fc2e4", "sha256": "b679d11e49970647fad7d1fbd8a46b2f325ed50f4e15d722345567ed882e5357" }, "downloads": -1, "filename": "imandra-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "b0263571b4ed743d247e256a813fc2e4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9475, "upload_time": "2019-08-05T14:15:50", "upload_time_iso_8601": "2019-08-05T14:15:50.102180Z", "url": "https://files.pythonhosted.org/packages/fa/84/094146b705f0d94afda4ff256e368fef0150bee18b7e6861c38393d6c8c5/imandra-0.1.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "d2fe493df361f3798669d112c3e05526", "sha256": "2897c4e1632687b9d8e98cf199233faba6e8341b574b30e67aa3fa9f44c9b4bf" }, "downloads": -1, "filename": "imandra-0.1.4.tar.gz", "has_sig": false, "md5_digest": "d2fe493df361f3798669d112c3e05526", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4303, "upload_time": "2019-08-05T14:15:51", "upload_time_iso_8601": "2019-08-05T14:15:51.679019Z", "url": "https://files.pythonhosted.org/packages/de/ca/8c41eeb73ce363d1493159ab0de018ea0807cb9a45fd64bd48c24aa34a5e/imandra-0.1.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "dfb2b59ea25fadecb3ad446b041ee839", "sha256": "84ae76c5c35a8e017eb39f7ca1f25ce37a9a1760d9c99e1cd607f48c8254d4dc" }, "downloads": -1, "filename": "imandra-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "dfb2b59ea25fadecb3ad446b041ee839", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9447, "upload_time": "2019-08-05T14:56:05", "upload_time_iso_8601": "2019-08-05T14:56:05.749416Z", "url": "https://files.pythonhosted.org/packages/54/5e/7b9d2181be86300eab4ea3f5c69b21d1992dab20132eabc95c6b5b6c2a3d/imandra-0.1.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "70116906029f4a3a637ed63c5306b801", "sha256": "03fc1b025a3342140eb890541a94db161b1dac3d5982c16167515d57fe4b83ba" }, "downloads": -1, "filename": "imandra-0.1.5.tar.gz", "has_sig": false, "md5_digest": "70116906029f4a3a637ed63c5306b801", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4271, "upload_time": "2019-08-05T14:56:07", "upload_time_iso_8601": "2019-08-05T14:56:07.298965Z", "url": "https://files.pythonhosted.org/packages/95/3b/6a74e2e8f7f5652585c40c4f01410cdd07011c952872eff77fb9bdb0129c/imandra-0.1.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "a88d13b6b9cc5fa037a38afb5be61c41", "sha256": "9d6c1a57554cfdf7f40e30bdfc09497f98e2e18d13daa2bc7aec8ebb53767a37" }, "downloads": -1, "filename": "imandra-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "a88d13b6b9cc5fa037a38afb5be61c41", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10311, "upload_time": "2019-08-28T13:21:27", "upload_time_iso_8601": "2019-08-28T13:21:27.362780Z", "url": "https://files.pythonhosted.org/packages/c8/54/761bc88bdf276ed0417396954e094755dfdfd58cdb9cd38a29bb3892c864/imandra-0.1.9-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6ae1835e6a95af77d72bdb3371cdaedd", "sha256": "a0b210fc77620fca4b822cb7ead8293e9ad0615d474578869c449c13c0720143" }, "downloads": -1, "filename": "imandra-0.1.9.tar.gz", "has_sig": false, "md5_digest": "6ae1835e6a95af77d72bdb3371cdaedd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4922, "upload_time": "2019-08-28T13:21:28", "upload_time_iso_8601": "2019-08-28T13:21:28.700585Z", "url": "https://files.pythonhosted.org/packages/ce/39/38106116e6401724a90dbd1b688de8005bdfd8f1568f3caa12d5554b2d03/imandra-0.1.9.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ad46eec4029251dee0f7bcab1733c801", "sha256": "c8fb9c984f88da41da53a2738d98a646501cba3788be8e59ce4c1bf532e64bd5" }, "downloads": -1, "filename": "imandra-0.1.12-py3-none-any.whl", "has_sig": false, "md5_digest": "ad46eec4029251dee0f7bcab1733c801", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10341, "upload_time": "2019-10-24T08:55:54", "upload_time_iso_8601": "2019-10-24T08:55:54.635419Z", "url": "https://files.pythonhosted.org/packages/d2/9a/5e88bef599fb29bbc79fa90b442c9bc8684bd3e872cdda84f8f62a897253/imandra-0.1.12-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "832c76f5edd90451edd981fe219108a4", "sha256": "294b1439a2d6dba52cd9f8506834437a17ba90d4bdffa08d5cd5c85bcc912527" }, "downloads": -1, "filename": "imandra-0.1.12.tar.gz", "has_sig": false, "md5_digest": "832c76f5edd90451edd981fe219108a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4930, "upload_time": "2019-10-24T08:55:56", "upload_time_iso_8601": "2019-10-24T08:55:56.900522Z", "url": "https://files.pythonhosted.org/packages/d5/f2/ac4a14322331cd8f9b097729cc77431abfca8305d74ad91f069475e3bb30/imandra-0.1.12.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }