{"id":19428076,"url":"https://github.com/hengxin/jupiter-refinement-project","last_synced_at":"2026-03-19T09:50:38.287Z","repository":{"id":112446933,"uuid":"168646852","full_name":"hengxin/jupiter-refinement-project","owner":"hengxin","description":"Jupiter Refinement Project","archived":false,"fork":false,"pushed_at":"2020-11-23T05:05:06.000Z","size":58612,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-12T18:05:10.790Z","etag":null,"topics":["collaborative-editing","formal-verification","jupiter","refinement","tla","tlaplus","tlaps","tlc"],"latest_commit_sha":null,"homepage":null,"language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hengxin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-02-01T05:23:38.000Z","updated_at":"2022-07-19T02:24:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"172cc562-7373-4708-8cbd-5bc3bdde97cd","html_url":"https://github.com/hengxin/jupiter-refinement-project","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hengxin/jupiter-refinement-project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hengxin%2Fjupiter-refinement-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hengxin%2Fjupiter-refinement-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hengxin%2Fjupiter-refinement-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hengxin%2Fjupiter-refinement-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hengxin","download_url":"https://codeload.github.com/hengxin/jupiter-refinement-project/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hengxin%2Fjupiter-refinement-project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279012471,"owners_count":26085131,"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","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["collaborative-editing","formal-verification","jupiter","refinement","tla","tlaplus","tlaps","tlc"],"created_at":"2024-11-10T14:14:01.609Z","updated_at":"2025-10-12T18:06:10.701Z","avatar_url":"https://github.com/hengxin.png","language":"TeX","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `jupiter-refinement-project`\n\n## Overview\nIt is devoted to \"formal specification and verification of a family of Jupiter protocols \nfor implementing replicated lists\".\n\nJupiter protocol is a core of many collaborative editing systems.\n\n## Papers\nSee [paper-jupiter-refinement](https://github.com/hengxin/jupiter-refinement-project/blob/master/paper-jupiter-refinement.pdf).\n\n## How to Run?\n\n1. Run separately.\n\n  Create and run TLC models [in the usual way](https://tla.msr-inria.inria.fr/tlatoolbox/doc/model/model.html).\n\n2. Run in batch (***Recommended***).\n\n  We write scripts to automatically conduct a batch of experiments; \n  see [tangruize/jupiter-experiments](https://github.com/tangruize/jupiter-experiments/tree/master).\n\n## TLA+ Modules\n\n**Note:** The TLA+ code in this repository may be different from that in papers\nwe wrote in formatting, naming, and modularity.\n\nThe following figure shows the key TLA+ modules in this project,\nwhere the solid line from module A to module B indicates that B *\"extends\"* A,\nand the dashed line from module A to module B indicates that B contains an *\"instance\"* of A.\n\n![Module Graph](https://github.com/hengxin/jupiter-refinement-project/wiki/modules.png)\n\nThese modules fall into four categories:\n- System Model:\n  It describes the client/server architecture of collaborative editing systems.\n\n  It also models a replica as an abstract state machine \n  and provides the interface for implementing such a state machine.\n- Jupiter Family: \n  This contains several techniques for all Jupiter protocols.\n  - `JupiterCtx` is for context-based Jupiter protocols.\n  - `JupiterSerial` helps to establish the serialization order at the server.\n  - `BufferStateSpace`, `GraphStateSpace`, `SetStateSpace` are data structures for supporting OTs in Jupiter protocols.\n- Jupiter Protocols: \n  Formal TLA+ specifications of four Jupiter protocols, i.e., `AJupiter`, `XJupiter`, `CJupiter`, and `AbsJupiter`.\n- Refinement: \n  The (data) refinement relations among Jupiter protocols are established.\n  Specifically, \n  - `AJupiter` is a refinement (a.k.a implementation) of `XJupiter`,\n  - `XJupiter` is a refinement of `CJupiter`, \n  - `CJupiter` is a refinement of `AbsJupiter`.\n\n## Jupiter Protocols Illustrated\nSee [jupiter-protocols-illustrations](https://github.com/hengxin/jupiter-refinement-project/tree/master/jupiter-protocols-illustrations) for illustrations for these four Jupiter protocols.\n\n---\nFor more details, please visit the [wiki](https://github.com/hengxin/jupiter-refinement-project/wiki) page.\n\nIf you have any questions, please fire an issue or contact us (hfwei at nju dot edu dot cn).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhengxin%2Fjupiter-refinement-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhengxin%2Fjupiter-refinement-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhengxin%2Fjupiter-refinement-project/lists"}