项目作者: hengxin

项目描述 :
Jupiter Refinement Project
高级语言: TeX
项目地址: git://github.com/hengxin/jupiter-refinement-project.git
创建时间: 2019-02-01T05:23:38Z
项目社区:https://github.com/hengxin/jupiter-refinement-project

开源协议:

下载


jupiter-refinement-project

Overview

It is devoted to “formal specification and verification of a family of Jupiter protocols
for implementing replicated lists”.

Jupiter protocol is a core of many collaborative editing systems.

Papers

See paper-jupiter-refinement.

How to Run?

  1. Run separately.

    Create and run TLC models in the usual way.

  2. Run in batch (Recommended).

    We write scripts to automatically conduct a batch of experiments;
    see tangruize/jupiter-experiments.

TLA+ Modules

Note: The TLA+ code in this repository may be different from that in papers
we wrote in formatting, naming, and modularity.

The following figure shows the key TLA+ modules in this project,
where the solid line from module A to module B indicates that B “extends” A,
and the dashed line from module A to module B indicates that B contains an “instance” of A.

Module Graph

These modules fall into four categories:

  • System Model:
    It describes the client/server architecture of collaborative editing systems.

    It also models a replica as an abstract state machine
    and provides the interface for implementing such a state machine.

  • Jupiter Family:
    This contains several techniques for all Jupiter protocols.
    • JupiterCtx is for context-based Jupiter protocols.
    • JupiterSerial helps to establish the serialization order at the server.
    • BufferStateSpace, GraphStateSpace, SetStateSpace are data structures for supporting OTs in Jupiter protocols.
  • Jupiter Protocols:
    Formal TLA+ specifications of four Jupiter protocols, i.e., AJupiter, XJupiter, CJupiter, and AbsJupiter.
  • Refinement:
    The (data) refinement relations among Jupiter protocols are established.
    Specifically,
    • AJupiter is a refinement (a.k.a implementation) of XJupiter,
    • XJupiter is a refinement of CJupiter,
    • CJupiter is a refinement of AbsJupiter.

Jupiter Protocols Illustrated

See jupiter-protocols-illustrations for illustrations for these four Jupiter protocols.


For more details, please visit the wiki page.

If you have any questions, please fire an issue or contact us (hfwei at nju dot edu dot cn).

XJupiterExtended_1649116361994.pdf
XJupiterH_1649116362062.pdf
XJupiterH_1649116362100.pdf
XJupiterImplCJupiter_1649116362128.pdf
CSComm_1649116362194.pdf
XJupiter_1649116362273.pdf
XJupiterExtended_1649116362333.pdf
XJupiterImplCJupiter_1649116362356.pdf
paper-jupiter-refinement_1649116362848.pdf
XJupiter_1649116353714.pdf
AbsJupiter_1649116353838.pdf
AbsJupiter_1649116353890.pdf
CSComm_1649116353976.pdf
JupiterCtx_1649116354027.pdf
JupiterInterface_1649116354104.pdf
JupiterSerial_1649116354171.pdf
OT_1649116354227.pdf
Op_1649116354272.pdf
SetStateSpace_1649116354299.pdf
SystemModel_1649116354394.pdf
AbsJupiterH_1649116354539.pdf
AbsJupiter_1649116354609.pdf
AbsJupiterH_1649116354675.pdf
CSComm_1649116354754.pdf
SetStateSpace_1649116354801.pdf
BufferStateSpace_1649116354888.pdf
BufferStateSpace_1649116354964.pdf
CAbsJupiter_1649116355033.pdf
CAbsJupiter_1649116355110.pdf
JupiterCtx_1649116355157.pdf
CJupiter_1649116355192.pdf
CJupiter_1649116355273.pdf
GraphStateSpace_1649116355303.pdf
GraphsUtil_1649116355381.pdf
JupiterInterface_1649116355467.pdf
OpOperators_1649116355542.pdf
StateSpace_1649116355634.pdf
CJupiterH_1649116355701.pdf
CJupiterH_1649116355779.pdf
CJupiterImplAbsJupiter_1649116355845.pdf
AbsJupiter_1649116355912.pdf
CJupiterImplAbsJupiter_1649116356001.pdf
CSComm_1649116356059.pdf
CSComm_1649116356134.pdf
FunctionUtils_1649116356208.pdf
GJupiter_1649116356296.pdf
GJupiter_1649116356338.pdf
GJupiterH_1649116356413.pdf
GraphStateSpace_1649116356479.pdf
GraphStateSpace_1649116356528.pdf
GraphsUtil_1649116356602.pdf
StateSpace_1649116356680.pdf
GraphUtils_1649116356746.pdf
GraphUtils_1649116356814.pdf
GraphsUtil_1649116356857.pdf
JupiterCtx_1649116359633.pdf
JupiterCtx_1649116359655.pdf
JupiterInterface_1649116359758.pdf
FunctionUtils_1649116359802.pdf
JupiterInterface_1649116359877.pdf
OT_1649116359977.pdf
Op_1649116360055.pdf
OpOperators_1649116360108.pdf
SequenceUtils_1649116360210.pdf
SetUtils_1649116360280.pdf
SystemModel_1649116360369.pdf
JupiterOid_1649116360447.pdf
JupiterOid_1649116360514.pdf
JupiterSerial_1649116360540.pdf
JupiterCtx_1649116360561.pdf
JupiterInterface_1649116360611.pdf
JupiterSerial_1649116360680.pdf
NJupiter_1649116360738.pdf
NJupiter_1649116360782.pdf
NJupiterExtended_1649116360869.pdf
NJupiterH_1649116360969.pdf
NJupiterImplXJupiter_1649116361047.pdf
OT_1649116361115.pdf
OT_1649116361170.pdf
Op_1649116361270.pdf
Op_1649116361308.pdf
SequenceUtils_1649116361392.pdf
SetStateSpace_1649116361481.pdf
SetStateSpace_1649116361525.pdf
SetUtils_1649116361593.pdf
SystemModel_1649116361631.pdf
XJupiter_1649116361684.pdf
GraphsUtil_1649116361721.pdf
JupiterCtx_1649116361761.pdf
StateSpace_1649116361816.pdf
XJupiter_1649116361883.pdf
XJupiterExtended_1649116361934.pdf
AJupiter_1649116352153.pdf
AJupiter_1649116352234.pdf
BufferStateSpace_1649116352295.pdf
OT_1649116352392.pdf
OpOperators_1649116352501.pdf
AJupiterExtended_1649116352662.pdf
AJupiterExtended_1649116352705.pdf
JupiterCtx_1649116352779.pdf