All Projects → RedPRL → Redtt

RedPRL / Redtt

Licence: apache-2.0
"Between the darkness and the dawn, a red cube rises!": a proof assistant for cartesian cubical type theory

Programming Languages

ocaml
1615 projects

Projects that are alternatives of or similar to Redtt

Typedefs
Programming language agnostic type construction language based on polynomials.
Stars: ✭ 337 (+92.57%)
Mutual labels:  type-theory
Modules Papers
A collection of papers on modules.
Stars: ✭ 74 (-57.71%)
Mutual labels:  type-theory
Foundational Knowledge For Programmers
List of resources about foundational knowledge for programmers (supposed to last a few decades)
Stars: ✭ 115 (-34.29%)
Mutual labels:  type-theory
Plt
λΠ Programming Language Theory
Stars: ✭ 4,609 (+2533.71%)
Mutual labels:  type-theory
Narc Rs
(WIP) Dependently-typed programming language with Agda style dependent pattern matching
Stars: ✭ 58 (-66.86%)
Mutual labels:  type-theory
Cooltt
😎TT
Stars: ✭ 85 (-51.43%)
Mutual labels:  type-theory
Write You A Haskell
Building a modern functional compiler from first principles. (http://dev.stephendiehl.com/fun/)
Stars: ✭ 3,064 (+1650.86%)
Mutual labels:  type-theory
Hott Uf Agda Lecture Notes
Lecture notes on univalent foundations of mathematics with Agda
Stars: ✭ 162 (-7.43%)
Mutual labels:  type-theory
Rust Nbe For Mltt
Normalization by evaluation for Martin-Löf Type Theory with dependent records
Stars: ✭ 72 (-58.86%)
Mutual labels:  type-theory
Kind
A modern proof language
Stars: ✭ 2,075 (+1085.71%)
Mutual labels:  type-theory
Pikelet
A friendly little systems language with first-class types. Very WIP! 🚧 🚧 🚧
Stars: ✭ 485 (+177.14%)
Mutual labels:  type-theory
Mlang
Towards changing things and see if it proofs
Stars: ✭ 57 (-67.43%)
Mutual labels:  type-theory
Ttlite
A SuperCompiler for Martin-Löf's Type Theory
Stars: ✭ 94 (-46.29%)
Mutual labels:  type-theory
Cubicaltt
Experimental implementation of Cubical Type Theory
Stars: ✭ 461 (+163.43%)
Mutual labels:  type-theory
Proofs
A selection of formal proofs in Coq.
Stars: ✭ 135 (-22.86%)
Mutual labels:  type-theory
Datafun
Research on integrating datalog & lambda calculus via monotonicity types
Stars: ✭ 287 (+64%)
Mutual labels:  type-theory
Formal Type Theory
Formalising Type Theory in a modular way for translations between type theories
Stars: ✭ 74 (-57.71%)
Mutual labels:  type-theory
Lean
Homepage Theorem Proving in Lean FAQ
Stars: ✭ 2,006 (+1046.29%)
Mutual labels:  type-theory
Ditto
A Super Kawaii Dependently Typed Programming Language
Stars: ✭ 154 (-12%)
Mutual labels:  type-theory
Agda
Agda is a dependently typed programming language / interactive theorem prover.
Stars: ✭ 1,699 (+870.86%)
Mutual labels:  type-theory

redtt is a core language for cartesian cubical type theory with extension types. We plan to build an extensible interactive proof assistant around it, using ideas from proof assistants like RedPRL, Epigram, and Idris.

Related work: yacctt, RedPRL and cubicaltt.

Feature Summary

redtt is not yet documented; we have the following interesting features:

  • path types definable in terms of more general extension types, which specify the boundary of an n-cube all at once

  • source language with implicit arguments based on a cubical version of higher-order unification

  • predicative hierarchy of cumulative, univalent universes

  • level "polymorphic" definitions achieved using McBride's "Crude But Effective Stratification" (in which each thing is defined at the lowest level possible, and then hoisted upward when needed)

  • two-level type theory in the style of RedPRL: currently we have only pretypes and (kan) types. Once we design a suitable account of exact equality types in the cubical setting, we will add these, and they will live side-by-side with path types as they did in RedPRL.

  • user-defined (parametric) higher inductive types (indexed HITs not yet supported) based on the work of Evan Cavallo and Bob Harper.

  • RedML, a (very) rudimentary tactic language

Features we intend to add in the near future:

  • namespacing

  • indexed higher inductive types

  • a type system for RedML

  • algebraic effects and handlers for RedML

The redtt mathematical library

See library/README.md.

Contributing Guidelines

Help is welcome and desired! Please see the open tickets and especially our Roadmap. Currently, we are trying to limit the dependencies of this code; when something is available as a package, but can easily be coded locally, we prefer the latter.

We also want to avoid using things like syntax extensions/ppxs, though we may end up using one of these for the lexer at one point.

Installing

Prerequisites

prerequisite version how to install
OPAM >= 2.0.5 manually or via package manager

If this is your first time configuring OPAM, please run opam init; this will automatically install OCaml. If you are using a version of OCaml other than 4.09.0, you must run opam switch 4.09.0.

Other recommended packages

We recommend installing merlin and ocp-indent using opam; the easiest way to edit OCaml code out of the box is to install Visual Studio Code along with the OCaml and Reason IDE package by Darin Morrison.

Installing Dependencies

$ git clone https://github.com/RedPRL/redtt
$ cd redtt
$ opam update
$ opam pin add -y redtt . # the first time you build
$ opam upgrade            # after packages change

If you have previously built redtt but some of our dependencies have changed in the meanwhile, opam upgrade might fail. In this case, please first run opam uninstall redtt and then run opam upgrade.

Building

$ make

Toplevel

Requires utop (see prerequisites).

$ make top

Library

$ make library

What's the relationship to RedPRL?

The goal of the RedPRL Development Team is to study implementation techniques for higher dimensional type theory, and determine which ideas lead to the most convenient and ergonomic system for developing both higher dimensional mathematics and higher dimensional programming. To this end, our first experiment was the RedPRL Proof Assistant; our second experiment is the redtt proof assistant, which synthesizes what we learned from the experience of building RedPRL and using it to formalize mathematics.

Acknowledgments

This research was sponsored by the Air Force Office of Scientific Research under grant number FA9550-15-1-0053 and the National Science Foundation under grant number DMS-1638352. We also thank the Logic and Semantics Group at Aarhus University for their hospitality in during the summer of 2018, during which part of this work was undertaken. The views and conclusions contained here are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of any sponsoring institution, government or any other entity.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].