coposet


Namecoposet JSON
Version 0.0.1 PyPI version JSON
download
home_pagehttps://github.com/daydemir/partial
SummaryCollaborative partial orders
upload_time2025-07-10 14:23:13
maintainerNone
docs_urlNone
authorDeniz Aydin
requires_python<4.0,>=3.13
licenseNone
keywords poset partial-order mathematics codesign consensus voting
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Coposet

Coposet is a tool for manipulating posets and allowing them to be  and exporting them to various formats.

## Posets (Partially Ordered Sets)

A poset is a set with a partial order relation (≤) that is:
- **Reflexive**: a ≤ a
- **Antisymmetric**: if a ≤ b and b ≤ a, then a = b
- **Transitive**: if a ≤ b and b ≤ c, then a ≤ c

The product of two posets P and Q creates a new poset P × Q where:
  - Elements: All pairs (p, q) where p ∈ P and q ∈ Q
  - Ordering: (p1, q1) ≤ (p2, q2) if and only if p1 ≤ p2 in P AND q1 ≤ q2 in Q

## Schema

### Core

posetspace:
- id: uuid
- name: string
- description: string
- posets: list of posets
- default_poset: poset
- elements: list of elements
- projections?: list of posetspaces
- injections?: list of posetspaces
- consensus(consensus_type) -> poset

poset:
- id: uuid
- name: string
- description: string
- posetspace: posetspace
- relations: list of relations
- enrichment?: posetspace
- product(poset, poset) -> (poset, posetspace)
- coproduct(poset, poset) -> (poset, posetspace)
- export(format: format) -> string

element:
- id: uuid
- name: string
- description: string
- posetspace: posetspace

relation<T: posetspace, E: posetspace>:
- id: uuid
- less: element<where less.posetspace == T>
- greater: element<where greater.posetspace == T>
- enrichment?: element<where enrichment.posetspace == E>

### Helpers

consensus_type:
- derive<T: posetspace>(array of posets<T>, dropEnrichments: boolean) -> poset<T>

format enum:
- mcdp, latex

### Voting
voter:
- poset: poset
- next_antichain(voted_antichain: voted_antichain<T>) -> Either<antichain<T>, poset>

antichain<T: posetspace>:
- id: uuid
- element: element<T>
- comparisons: set of elements<T>

voted_antichain<T: posetspace>:
- id: uuid
- antichain: antichain<T>
- new_less: set of elements<T>
- new_greater: set of elements<T>

### Enricher

enricher:
- poset: poset
- enrichment: posetspace
- enrich(relations: set<(relation<poset>, element<enrichment>)>) -> poset


## Details

We will use the [posets](https://pypi.org/project/posets/) library for the basic poset operations under the hood. This will be connected by a thin interface that converts the posets from the posets library to the coposet types we need to add on our layer of voting and consensus.

We should look into using [networkx](https://networkx.org) for the complex poset operations involved in consensus and voting.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/daydemir/partial",
    "name": "coposet",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.13",
    "maintainer_email": null,
    "keywords": "poset, partial-order, mathematics, codesign, consensus, voting",
    "author": "Deniz Aydin",
    "author_email": "deniz@aydemir.us",
    "download_url": "https://files.pythonhosted.org/packages/96/0a/3b54114e2fae90ab40ae68663de4ac65048f4e6bcba5020446535c166683/coposet-0.0.1.tar.gz",
    "platform": null,
    "description": "# Coposet\n\nCoposet is a tool for manipulating posets and allowing them to be  and exporting them to various formats.\n\n## Posets (Partially Ordered Sets)\n\nA poset is a set with a partial order relation (\u2264) that is:\n- **Reflexive**: a \u2264 a\n- **Antisymmetric**: if a \u2264 b and b \u2264 a, then a = b\n- **Transitive**: if a \u2264 b and b \u2264 c, then a \u2264 c\n\nThe product of two posets P and Q creates a new poset P \u00d7 Q where:\n  - Elements: All pairs (p, q) where p \u2208 P and q \u2208 Q\n  - Ordering: (p1, q1) \u2264 (p2, q2) if and only if p1 \u2264 p2 in P AND q1 \u2264 q2 in Q\n\n## Schema\n\n### Core\n\nposetspace:\n- id: uuid\n- name: string\n- description: string\n- posets: list of posets\n- default_poset: poset\n- elements: list of elements\n- projections?: list of posetspaces\n- injections?: list of posetspaces\n- consensus(consensus_type) -> poset\n\nposet:\n- id: uuid\n- name: string\n- description: string\n- posetspace: posetspace\n- relations: list of relations\n- enrichment?: posetspace\n- product(poset, poset) -> (poset, posetspace)\n- coproduct(poset, poset) -> (poset, posetspace)\n- export(format: format) -> string\n\nelement:\n- id: uuid\n- name: string\n- description: string\n- posetspace: posetspace\n\nrelation<T: posetspace, E: posetspace>:\n- id: uuid\n- less: element<where less.posetspace == T>\n- greater: element<where greater.posetspace == T>\n- enrichment?: element<where enrichment.posetspace == E>\n\n### Helpers\n\nconsensus_type:\n- derive<T: posetspace>(array of posets<T>, dropEnrichments: boolean) -> poset<T>\n\nformat enum:\n- mcdp, latex\n\n### Voting\nvoter:\n- poset: poset\n- next_antichain(voted_antichain: voted_antichain<T>) -> Either<antichain<T>, poset>\n\nantichain<T: posetspace>:\n- id: uuid\n- element: element<T>\n- comparisons: set of elements<T>\n\nvoted_antichain<T: posetspace>:\n- id: uuid\n- antichain: antichain<T>\n- new_less: set of elements<T>\n- new_greater: set of elements<T>\n\n### Enricher\n\nenricher:\n- poset: poset\n- enrichment: posetspace\n- enrich(relations: set<(relation<poset>, element<enrichment>)>) -> poset\n\n\n## Details\n\nWe will use the [posets](https://pypi.org/project/posets/) library for the basic poset operations under the hood. This will be connected by a thin interface that converts the posets from the posets library to the coposet types we need to add on our layer of voting and consensus.\n\nWe should look into using [networkx](https://networkx.org) for the complex poset operations involved in consensus and voting.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Collaborative partial orders",
    "version": "0.0.1",
    "project_urls": {
        "Documentation": "https://github.com/daydemir/partial/blob/main/README.md",
        "Homepage": "https://github.com/daydemir/partial",
        "Repository": "https://github.com/daydemir/partial"
    },
    "split_keywords": [
        "poset",
        " partial-order",
        " mathematics",
        " codesign",
        " consensus",
        " voting"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0710a714c79c67878d59196f01fa0cfb2bf01f451ce064ce03d737906e88d5ad",
                "md5": "5a7d63242c90b5d8809fff7f4f7add1d",
                "sha256": "975bfc8276c1455a90780c599d2f86ea1dc6fd837a4c3498909828b718058689"
            },
            "downloads": -1,
            "filename": "coposet-0.0.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5a7d63242c90b5d8809fff7f4f7add1d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.13",
            "size": 20399,
            "upload_time": "2025-07-10T14:23:12",
            "upload_time_iso_8601": "2025-07-10T14:23:12.178342Z",
            "url": "https://files.pythonhosted.org/packages/07/10/a714c79c67878d59196f01fa0cfb2bf01f451ce064ce03d737906e88d5ad/coposet-0.0.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "960a3b54114e2fae90ab40ae68663de4ac65048f4e6bcba5020446535c166683",
                "md5": "9a8af4ab7a7c09306896d04e28f58074",
                "sha256": "1e954b862dce0d7d99a1c881c72427d8f719039c8e86d32fe0621b25433abea1"
            },
            "downloads": -1,
            "filename": "coposet-0.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "9a8af4ab7a7c09306896d04e28f58074",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.13",
            "size": 17911,
            "upload_time": "2025-07-10T14:23:13",
            "upload_time_iso_8601": "2025-07-10T14:23:13.154842Z",
            "url": "https://files.pythonhosted.org/packages/96/0a/3b54114e2fae90ab40ae68663de4ac65048f4e6bcba5020446535c166683/coposet-0.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-10 14:23:13",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "daydemir",
    "github_project": "partial",
    "github_not_found": true,
    "lcname": "coposet"
}
        
Elapsed time: 0.82044s