Skip to content

KonjacSource/ShOTT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Nov 11, 2024
96b8440 · Nov 11, 2024

History

9 Commits
Nov 9, 2024
Oct 24, 2024
Oct 24, 2024
Nov 10, 2024
Oct 24, 2024
Oct 24, 2024
Oct 24, 2024
Oct 24, 2024
Nov 10, 2024
Nov 11, 2024
Nov 10, 2024
Oct 24, 2024
Nov 9, 2024
Nov 10, 2024
Nov 10, 2024
Oct 24, 2024
Oct 24, 2024

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