The RedPRL Proof Assistant (Invited Paper)

  title={The RedPRL Proof Assistant (Invited Paper)},
  author={Carlo Angiuli and Evan Cavallo and Kuen-Bang Hou and Robert Harper and Jonathan Sterling},
RedPRL is an experimental proof assistant based on Cartesian cubical computational type theory, a new type theory for higher-dimensional constructions inspired by homotopy type theory. In the style of Nuprl, RedPRL users employ tactics to establish behavioral properties of cubical functional programs embodying the constructive content of proofs. Notably, RedPRL implements a two-level type theory, allowing an extensional, proof-irrelevant notion of exact equality to coexist with a higher… 

Figures from this paper

Cubical Syntax for Reflection-Free Extensional Equality

An algebraic canonicity theorem is established using a novel cubical extension of the logical families or categorical gluing argument inspired by Coquand and Shulman: every closed element of boolean type is derivably equal to either 'true' or 'false'.

Cubical methods in homotopy type theory and univalent foundations

Cubical methods have played an important role in the development of Homotopy Type Theory and Univalent Foundations (HoTT/UF) in recent years. The original motivation behind these developments was

Objective Metatheory of Cubical Type Theories

The semantic methods of the objective metatheory enable the design and implementation of correct-by-construction elaboration algorithms, providing a principled interface between real proof assistants and ideal mathematics.

An Order-Theoretic Analysis of Universe Polymorphism

We present a novel formulation of universe polymorphism in dependent type theory in terms of monads on the category of strict partial orders, and a novel algebraic structure, displacement algebras,

Syntax and models of Cartesian cubical type theory

Abstract We present a cubical type theory based on the Cartesian cube category (faces, degeneracies, symmetries, diagonals, but no connections or reversal) with univalent universes, each containing

Computational Semantics of Cartesian Cubical Type Theory

Many students complete PhDs in functional programming each year. As a service to the community, twice per year the Journal of Functional Programming publishes the abstracts from PhD dissertations

How to safely use extensionality in Liquid Haskell

The inconsistency of the functional extensionality axiom (funExt) is demonstrated and a new approach to equality in Liquid Haskell is developed: a propositional equality in a library the authors call PEq, which avoids the inconsistency while proving useful equalities at higher types.

QED at Large: A Survey of Engineering of Formally Verified Software

A survey of the literature presents a holistic understanding of proof engineering for program correctness, covering impact in practice, foundations, proof automation, proof organization, and practical proof development.

A Cubical Language for Bishop Sets

We present XTT, a version of Cartesian cubical type theory specialized for Bishop sets \`a la Coquand, in which every type enjoys a definitional version of the uniqueness of identity proofs. Using



The HoTT library: a formalization of homotopy type theory in Coq

We report on the development of the HoTT library, a formalization of homotopy type theory in the Coq proof assistant. It formalizes most of basic homotopy type theory, including univalence, higher

Cubical Type Theory: A Constructive Interpretation of the Univalence Axiom

A type theory in which it is possible to directly manipulate n-dimensional cubes based on an interpretation of dependenttype theory in a cubical set model that enables new ways to reason about identity types, for instance, function extensionality is directly provable in the system.

Computational higher-dimensional type theory

This work provides a direct, deterministic operational interpretation for a representative higher-dimensional dependent type theory with higher inductive types and an instance of univalence, and concludes that closed programs of boolean type evaluate to true or false.

Computational Higher Type Theory III: Univalent Universes and Exact Equality

The main result is a canonicity theorem stating that closed terms of boolean type evaluate to either true or false, establishing the computational interpretation of Cartesian cubical higher type theory based on cubical programs equipped with a deterministic operational semantics.

Homotopy Type Theory in Lean

The homotopy type theory library in the Lean proof assistant is discussed, especially geared toward synthetic homotology theory, and the use of quotients and truncations and cubical methods are discussed.

Computational Higher Type Theory IV: Inductive Types

The addition of higher inductive types and identity types makes computational higher type theory a model of homotopy type theory, capable of interpreting almost all of the constructions in the HoTT Book (with the exception of general indexed inductivetypes and inductive-inductive types).

The simplicial model of Univalent Foundations (after Voevodsky)

In this largely expository paper, we construct and investigate a model of the Univalent Foundations of Mathematics in the category of simplicial sets. To this end, we first give a new technique for

Univalent Foundations Project ( a modified version of an NSF grant application )

1 General outline of the proposed project While working on the completion of the proof of the Bloch-Kato conjecture I have thought a lot about what to do next. Eventually I became convinced that the

Algebraic Foundations of Proof Refinement

This work contributes a general apparatus for dependent tactic-based proof refinement in the LCF tradition, in which the statements of subgoals may express a dependency on the proofs of otherSubgoals, and introduces a novel behavioral distinction between refinement rules and tactics based on naturality.

Two-Level Type Theory and Applications

2LTT is a framework which is suitable for formulating additional axioms that one might want to add to HoTT, and a collection of tools are set up with the goal of making 2LTT a convenient language for future developments.