Giter Site home page Giter Site logo

lemmy / communitymodules Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tlaplus/communitymodules

0.0 1.0 0.0 6.47 MB

TLA+ snippets, operators, and modules contributed and curated by the TLA+ community

License: MIT License

Java 38.09% TLA 61.35% Shell 0.56%

communitymodules's Introduction

Community Repository

This is an open repository dedicated to contributions from the TLA+ community. Here you can submit the snippets, operators, and modules that you wrote for your specifications and that you want to share with the rest of the TLA+ community.

(For us to gauge demand, please star (eyes up and right) this repository if you use the CommunityModules.)

The Modules

Name Short description Module Override? Contributors
Functions.tla Notions about functions including injection, surjection, and bijection. @muenchnerkindl, @quicquid,@lemmy
Folds.tla Basic Fold operator. @quicquid, @muenchnerkindl
Graphs.tla Common operators on directed and undirected graphs. Leslie Lamport, @lemmy, @muenchnerkindl
SequencesExt.tla Various operators to manipulate sequences. @muenchnerkindl,@lemmy, @hwayne, @quicquid
Relation.tla Basic operations on relations, represented as binary Boolean functions over some set S. @muenchnerkindl
FiniteSetsExt.tla An Operator to do folds without having to use RECURSIVE. @hwayne,@lemmy, @quicquid
Bitwise.tla Bitwise And and shift-right. @lemmy,@pfeodrippe
DifferentialEquations.tla see page 178ff of Specifying Systems Leslie Lamport
Json.tla Print TLA+ values as JSON values. @kuujo
SVG.tla see https://github.com/will62794/tlaplus_animation @will62794, @lemmy
ShiViz.tla Visualize error-traces of multi-process PlusCal algorithms with an Interactive Communication Graphs. @lemmy
TLCExt.tla Assertion operators and experimental TLC features (now part of TLC). @lemmy, @will62794
IOUtils.tla Input/Output of TLA+ values & Spawn system commands from a spec. @lemmy, @lvanengelen
Combinatorics.tla (n choose k), factorial, .... @lemmy
BagsExt.tla BagAdd, BagRemove, FoldBag, ... @muenchnerkindl

How to use it

You must be running Java 9 or higher.

Just copy & paste the snippet, the operators, or the set of modules you are interested in.

Alternatively, clone this repository and pass -DTLA-Library=/path/to/CommunityModules/modules when running TLC.

Another option is to download a library archive and add it to TLC's or the Toolbox's TLA+ library path. The advantage of doing this is that TLC will evaluate an operator faster if the operator comes with a Java implementation (see e.g. SequencesExt.Java). The latest release is at the stable URL https://github.com/tlaplus/CommunityModules/releases/latest/download/CommunityModules.jar.

If you are using the Toolbox, add the library archive under File > Preferences > TLA+ Preferences > TLA+ library path locations. Screencast how to install the CommunityModules into the TLA+ Toolbox

If you are using the VS Code extension, a recent version of the community modules is bundled with the nightly build. If you are not using the nightly build or need to use another version, see this.

If you are running TLC via tla2tools.jar, ensure the JAR is on the classpath: either place it next to tla2tools.jar or add it explicitly with java -cp tla2tools.jar:CommunityModules-deps.jar ....

Being a community-driven repository puts the community in charge of checking the validity and correctness of submissions. The maintainers of this repository will try to keep this place in order. Still, we can't guarantee the quality of the modules and, therefore, cannot provide any assistance on eventual malfunctions.

Contributing

If you have one or more snippets, operators, or modules you'd like to share, please open an issue or create a pull request. Before submitting your operator or module, please consider adding documentation. The more documentation there is, the more likely it is that someone will find it useful.

If you change an existing module and tests start failing, check all tests that assert (usually AssertError operator) specific error messages, i.e., line numbers and module names. Note that even an unrelated change further up in the file might have changed the line number and could lead to a failing test case.

Test

Run

ant test

Download

CI

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.