agda / agda-stdlib

The Agda standard library
https://wiki.portal.chalmers.se/agda/Libraries/StandardLibrary
Other
585 stars 237 forks source link
agda library proof

Ubuntu build

Ubuntu build

The Agda standard library

The standard library aims to contain all the tools needed to write both programs and proofs easily. While we always try and write efficient code, we prioritize ease of proof over type-checking and normalization performance. If computational performance is important to you, then perhaps try agda-prelude instead.

Getting started

If you're looking to find your way around the library, there are several different ways to get started:

Installation instructions

See the installation instructions for the latest version of the standard library.

Old versions of Agda

If you're using an old version of Agda, you can download the corresponding version of the standard library on the Agda wiki. The module index for older versions of the library is also available. For example, version 1.7 can be found at https://agda.github.io/agda-stdlib/v1.7/, just replace in the URL 1.7 with the version that you need.

Development version of Agda

If you're using a development version of Agda rather than the latest official release, you should use the experimental branch of the standard library rather than master. Instructions for updating the experimental branch. The experimental branch contains non-backward compatible patches for upcoming changes to the language.

Type-checking with flags

The --safe flag

Most of the library can be type-checked using the --safe flag. Please consult GenerateEverything.hs for a full list of modules that use unsafe features.

The --cubical-compatible flag

Most of the library can be type-checked using the --cubical-compatible flag, which since Agda v2.6.3 supersedes the former --without-K flag. Please consult GenerateEverything.hs for a full list of modules that use axiom K, requiring the --with-K flag.

Contributing to the library

If you would like to suggest improvements, feel free to use the Issues tab. Even better, if you would like to make the improvements yourself, we have instructions in HACKING to help you get started. For those who would simply like to help out, issues marked with the low-hanging-fruit tag are a good starting point.