Skip to content

KonjacSource/ShOTT

Repository files navigation

ShOTT

An Observational ShiTT

Forked from ShiTT since Nov 10, 2024

New primitives

eq    : (S T : U) (x : S) (y : T) -> U
coe   : (S T : U) (Q : eq U U S T) -> S -> T 
coeP  : (S T : U) (Q : eq U U S T) (s : S) -> eq S T s (coe S T Q s)
-- More in OTT.shitt

Now we can prove something we can not in MLTT.

For example.

fun appendAssoc {A : U} {l m n : N} 
                (u : Vec A l) (v : Vec A m) (w : Vec A n) 
              : Id (append (append u v) w) (append u (append v w))
-- More in OTTExample.shitt

This is ill-typed in MLTT. But it is fine now thanks to heterogeneous equality.

TODO

Syntax sugar for OTT.

Note

Keep tracing every equality terms is too complex, so I give up on that.

Reference

Pattern matching and inductive type:

Solving meta variables:

Termination checking:

Observational Type Theory:

About

An implementation of observational type theory.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published