hopv / nola

Nola: Parameterization for Later-Free Invariants and Borrows

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nola: Parameterization for Later-Free Invariants and Borrows

Nola is a library to achieve later-free invariants and borrows by the power of parameterization. It is fully mechanized in Coq with the Iris separation logic framework.

The name Nola comes from No laters and a nickname for New Orleans, Louisiana, US.

Publication

  • Non-Step-Indexed Separation Logic with Invariants and Rust-Style Borrows. Yusuke Matsushita. Ph.D. Thesis, University of Tokyo. Dec 2023. Paper Talk slides

Getting Started

We use opam ver 2.* for package management.

To set up an opam switch named nola and link it to the folder:

opam switch create nola 5.0.0 # Choose an OCaml version
opam switch link nola .

To set up opam repos for Coq and Iris for the current opam switch:

opam repo add coq-released https://coq.inria.fr/opam/released
opam repo add iris-dev https://gitlab.mpi-sws.org/iris/opam.git

To fix development dependencies and compile Coq code:

make devdep
make -j16 # Choose a job number

Or to install as a library locally:

opam install .

To generate and browse a document:

make viewdoc

Architecture

All the Coq code is in nola/ and structured as follows:

About

Nola: Parameterization for Later-Free Invariants and Borrows

License:MIT License


Languages

Language:Coq 99.8%Language:Makefile 0.2%