{
"info": {
"author": "Fritz Obermeyer",
"author_email": "fritz.obermeyer@gmail.com",
"bugtrack_url": null,
"classifiers": [],
"description": "[](https://travis-ci.org/fritzo/pomagma)\n[](https://pypi.python.org/pypi/pomagma)\n\n# Pomagma\n\nPomagma is an inference engine for\n[extensional untyped λ-calculus](/doc/philosophy.md).\nPomagma is useful for:\n\n- simplifying code fragments expressed in pure λ-join calculus\n- validating entire codebases of λ-terms and inequalities\n- testing and validating systems of inequalities\n- solving systems of inequalities\n\nPomagma follows a client-server database architecture\nwith a Python client library backed by a C++ database server.\nThe correctness of Pomagma's theory is being verified in the\n[Hstar project](https://github.com/fritzo/hstar).\n\n- [Installing](#installing)\n- [Quick Start](#quick-start)\n- [Get An Atlas](#get-an-atlas)\n- [Using The Client Library](/doc/client.md)\n- [Developing](/doc/README.md)\n - [Dataflow Architecture](/doc/README.md#dataflow-architecture)\n - [File Organization](/doc/README.md#file-organization)\n - [Configuring](/doc/README.md#configuring)\n - [Testing](/doc/README.md#testing)\n - [Benchmarking](/doc/README.md#benchmarking)\n - [Vetting changes](/doc/README.md#vetting-changes)\n- [Philosophy](/doc/philosophy.md)\n\n## Installing\n\nThe server targets Ubuntu 14.04 and 12.04, and installs in a python virtualenv.\n\n git clone https://github.com/fritzo/pomagma\n cd pomagma\n . install.sh\n make small-test # takes ~5 CPU minutes\n make test # takes ~1 CPU hour\n\nThe client library supports Python 2.7.\n\n pip install pomagma\n\n## Quick Start\n\nStart a local analysis server with the tiny default atlas\n\n pomagma analyze # starts server, Ctrl-C to quit\n\nThen in another terminal, start an interactive python client session\n\n $ pomagma connect # starts a client session, Ctrl-D to quit\n >>> simplify(['APP I I'])\n [I]\n >>> validate(['I'])\n [{'is_bot': False, 'is_top': False}]\n >>> solve('x', 'EQUAL x APP x x', max_solutions=4)\n ['I', 'BOT', 'TOP', 'V'],\n\nAlternatively, connect using the Python client library\n\n python\n from pomagma import analyst\n with analyst.connect() as db:\n print db.simplify([\"APP I I\"])\n print db.validate([\"I\"])\n print db.solve('x', 'EQUAL x APP x x', max_solutions=4)\n\n## Get an Atlas\n\nPomagma reasons about large programs by approximately locating code fragments\nin an **atlas** of 103-105 basic programs.\nThe more basic programs in an atlas,\nthe more accurate pomagma's analysis will be.\nPomagma ships with a tiny default atlas of ~2000 basic programs.\n\nTo get a large prebuilt atlas, put your AWS credentials in the environment and\n\n pomagma pull # downloads latest atlas from S3 bucket\n\nTo start building a custom atlas from scratch\n\n pomagma make max_size=10000 # kill and restart at any time\n\nPomagma is parallelized and needs lots of memory to build a large atlas.\n\n| Atlas Size | Compute Time | Memory Space | Storage Space |\n|---------------|--------------|--------------|---------------|\n| 1 000 atoms | ~1 CPU hour | ~10MB | ~1MB |\n| 10 000 atoms | ~1 CPU week | ~1GB | ~100MB |\n| 100 000 atoms | ~1 CPU year | ~100GB | ~10GB |\n\n## License\n\nCopyright 2005-2015 Fritz Obermeyer.
\nAll code is licensed under the [Apache 2.0 License](/LICENSE).",
"description_content_type": null,
"docs_url": null,
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/fritzo/pomagma",
"keywords": null,
"license": "Apache 2.0",
"maintainer": null,
"maintainer_email": null,
"name": "pomagma",
"package_url": "https://pypi.org/project/pomagma/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/pomagma/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "https://github.com/fritzo/pomagma"
},
"release_url": "https://pypi.org/project/pomagma/0.2.6/",
"requires_dist": null,
"requires_python": null,
"summary": "An inference engine for extensional lambda-calculus",
"version": "0.2.6"
},
"last_serial": 1753904,
"releases": {
"0.1.7": [
{
"comment_text": "",
"digests": {
"md5": "1a031456b8231be65856cbccf71ae6f1",
"sha256": "d71acf12a5f571cd4afa899ca7b878f28b31a8abe5d0d99d5ca98ca8f1429382"
},
"downloads": -1,
"filename": "pomagma-0.1.7.tar.gz",
"has_sig": false,
"md5_digest": "1a031456b8231be65856cbccf71ae6f1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 51337,
"upload_time": "2014-08-09T22:48:38",
"url": "https://files.pythonhosted.org/packages/45/ef/a0b7c674501719af40e01dd46494bb02c9f815908b97ff2f437d23377811/pomagma-0.1.7.tar.gz"
}
],
"0.2.3": [
{
"comment_text": "",
"digests": {
"md5": "6418c3878f6b9d2eb894c7bbf8ab4f58",
"sha256": "876476f314560f8df20c56d8970f433264fd43463966cceb89706f48b2e3c0e5"
},
"downloads": -1,
"filename": "pomagma-0.2.3.tar.gz",
"has_sig": false,
"md5_digest": "6418c3878f6b9d2eb894c7bbf8ab4f58",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 67905,
"upload_time": "2015-05-31T23:49:54",
"url": "https://files.pythonhosted.org/packages/99/5a/566cec5af285584e89258bcb14c47ca326ad8ebc45a074746be82b71fa79/pomagma-0.2.3.tar.gz"
}
],
"0.2.4": [
{
"comment_text": "",
"digests": {
"md5": "8255f6f2e8797b1044a7baf01c908e0d",
"sha256": "e3e083bbab223ef7299715d2fd6f51c70cab22763596092b4e7bbba256229f4f"
},
"downloads": -1,
"filename": "pomagma-0.2.4.tar.gz",
"has_sig": false,
"md5_digest": "8255f6f2e8797b1044a7baf01c908e0d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 71074,
"upload_time": "2015-06-01T03:32:41",
"url": "https://files.pythonhosted.org/packages/d7/5f/a9a7a1afe897f08acc85e5cbcbf6d294faa570ffebbf143efa090fa75948/pomagma-0.2.4.tar.gz"
}
],
"0.2.5": [
{
"comment_text": "",
"digests": {
"md5": "adf239034e58307e1191dc2d801ec91a",
"sha256": "e189dbfb92fe50c97fa5114c10fbd47bd13033f341b02f8480542e7b7b80565e"
},
"downloads": -1,
"filename": "pomagma-0.2.5.tar.gz",
"has_sig": false,
"md5_digest": "adf239034e58307e1191dc2d801ec91a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 72683,
"upload_time": "2015-07-23T05:35:19",
"url": "https://files.pythonhosted.org/packages/21/86/8a1ce14d3c79643011d9419f3b665c23775d70e6cae356a36a84b48fa71a/pomagma-0.2.5.tar.gz"
}
],
"0.2.6": [
{
"comment_text": "",
"digests": {
"md5": "8e47cd55d7bb6f1fcde18d5f828a613a",
"sha256": "c30761bf9ab8c4f35e23f588a379abfce6d286582a3ad236a23882186ac23d00"
},
"downloads": -1,
"filename": "pomagma-0.2.6.tar.gz",
"has_sig": false,
"md5_digest": "8e47cd55d7bb6f1fcde18d5f828a613a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 80744,
"upload_time": "2015-10-06T06:16:08",
"url": "https://files.pythonhosted.org/packages/9f/f3/aa62caaf1baeb932a194f116625001b2c8e9f5aea5e6e0ee1d5df7e7776a/pomagma-0.2.6.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "8e47cd55d7bb6f1fcde18d5f828a613a",
"sha256": "c30761bf9ab8c4f35e23f588a379abfce6d286582a3ad236a23882186ac23d00"
},
"downloads": -1,
"filename": "pomagma-0.2.6.tar.gz",
"has_sig": false,
"md5_digest": "8e47cd55d7bb6f1fcde18d5f828a613a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 80744,
"upload_time": "2015-10-06T06:16:08",
"url": "https://files.pythonhosted.org/packages/9f/f3/aa62caaf1baeb932a194f116625001b2c8e9f5aea5e6e0ee1d5df7e7776a/pomagma-0.2.6.tar.gz"
}
]
}