ericfinster / catt.io

Revised Omega-categorical Typechecker

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Introduction

Catt.io is an experimental typechecker for weak higher dimensional categories.

Requirements

Catt.io has two dependencies for building the parser and lexer:

  1. Menhir
  2. ocamllex

These can be installed from opam.

Build

The project builds with dune. A simple

dune build

should build the project. A top level Makefile is also provided for convenience.

Toplevel

If you have utop installed, you can launch an interactive session with the catt.io libraries loaded by running

dune utop lib

The catt.io library modules should then be available as Catt__*. So, for example, in utop,

open Catt__Expr;;

will give access to the expression syntax and routines.

Examples

The example folder contains some catt files that can be typechecked by the tool. To typecheck all the examples the following commands can be run:

catt examples/example_4_1.catt -su
catt examples/example_4_2.catt -su
catt examples/example_4_3_catt.catt
catt examples/example_4_3_cattsu.catt -su
catt examples/example_4_4.catt -su

In these commands the -su flag turns on strict normalisation.

About

Revised Omega-categorical Typechecker


Languages

Language:OCaml 88.8%Language:Agda 10.0%Language:Emacs Lisp 1.0%Language:Makefile 0.2%