Anders

OPAM Actions

Homotopy Type System with Strict Equality.

Features

Setup

$ opam install anders

Samples

You can find some examples in the share directory of the Anders package.

def comp-Path⁻¹ (A : U) (a b : A) (p : Path A a b)
  : Path (Path A a a) (comp-Path A a b a p (<i> p @ -i)) (<_> a)
 := <k j> hcomp A (-j ∨ j ∨ k)
          (λ (i : I), [(j = 0) → a,
                       (j = 1) → p @ -i ∧ -k,
                       (k = 1) → a])
          (inc (p @ j ∧ -k))

def kan (A : U) (a b c d : A) (p : Path A a c) (q : Path A b d) (r : Path A a b) : Path A c d
 := <i> hcomp A (i ∨ -i) (λ (j : I), [(i = 0) → p @ j, (i = 1) → q @ j]) (inc (r @ i))

def comp (A : I → U) (r : I) (u : Π (i : I), Partial (A i) r) (u₀ : (A 0)[r ↦ u 0]) : A 1
 := hcomp (A 1) r (λ (i : I), [(φ : r = 1) → transp (<j> A (i ∨ j)) i (u i φ)])
                  (inc (transp (<i> A i) 0 (ouc u₀)))
$ anders check path.anders

CCHM

Anders was built by strictly following these publications:

We tried to bring in as little of ourselves as possible.

HTS

Type system with two identities.

Benchmarks

$ time make
real    0m1.254s
user    0m0.981s
sys     0m0.183s
$ time for i in lib/* ; do ./anders.native check $i ; done
real    0m0.083s
user    0m0.080s
sys     0m0.004s

Acknowledgements

Authors