Giter Club home page Giter Club logo

cardano-formal-ledger-specifications-agda's Introduction

Formal ledger specifications

This repository contains the formal ledger specifications that are intended to eventually replace the existing formal specifications of the Cardano ledger found here. This project is currently incomplete and work in progress.

This repository currently contains two specifications---the work in progress specification for Cardano (up to and including the Conway era) and a small example that was produced for the Midnight project (but is unrelated to any actual Midnight code/features). Each specification is executable and contains some documentation in the form of a PDF document. They can be built by following the steps below.

Project Formal Specification HTML Version
Cardano Ledger Spec HTML
Midnight Example Ledger Spec HTML

Note: the HTML versions of the specifications are interactive, but many modules currently contain LaTeX code which is used to generate the PDF. We intend to fix this eventually.


Build and Test the Formal Spec

Clone this repository and enter its directory

git clone https://github.com/input-output-hk/formal-ledger-specifications.git
cd formal-ledger-specifications

Build the spec using nix-build

Invoke the following nix-build commands from inside the formal-ledger-specifications directory.

nix-build -A ledger.executableSpec     # build the spec
nix-build -A ledger.docs               # build the spec docs
nix-build -A midnight.executableSpec   # build the Midnight example
nix-build -A midnight.docs             # build the Midnight example docs

Test the spec using nix-shell

The executableSpec is a cabal package, which can be loaded into GHCI like this:

nix-shell -A run --command "cabal repl --build-depends 'agda-ledger-executable-spec, agda-ledger-executable-spec-midnight'"
λ> :m HSLedgerTest
λ> main

Contributions and Feedback

If you would like more detailed information and/or you want to contribute to the Agda formalization of the spec, please see the CONTRIBUTING.md file.

Please submit a new issue if you find problems with, and/or wish to comment on, this repository.

cardano-formal-ledger-specifications-agda's People

Contributors

ali-hill avatar coot avatar jaredcorduan avatar soupstraw avatar teodanciu avatar trueblueaddie avatar ulfnorell avatar whatisrt avatar williamdemeo avatar

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.