https://github.com/whatisrt/meta-cedille
Minimalistic dependent type theory with syntactic metaprogramming
https://github.com/whatisrt/meta-cedille
cedille dependent-types lambda-calculus metaprogramming
Last synced: 3 months ago
JSON representation
Minimalistic dependent type theory with syntactic metaprogramming
- Host: GitHub
- URL: https://github.com/whatisrt/meta-cedille
- Owner: WhatisRT
- License: mit
- Created: 2019-06-12T17:16:10.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-06-18T13:41:30.000Z (over 1 year ago)
- Last Synced: 2025-01-11T02:52:59.624Z (12 months ago)
- Topics: cedille, dependent-types, lambda-calculus, metaprogramming
- Language: Agda
- Homepage:
- Size: 945 KB
- Stars: 56
- Watchers: 7
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.org
- License: LICENSE
Awesome Lists containing this project
README
#+HTML:
* Meta Cedille
This is an implementation of a type theory (Cedille) with syntactic metaprogramming. Essential features and syntax of the language are built in itself via metaprogramming. This includes things such as the module system, datatype system and type inference. The [[docs/Syntactic_metaprogramming.pdf][preprint]] contains a fairly complete theoretical description of the system, and the [[https://github.com/WhatisRT/meta-cedille/wiki][wiki]] and [[https://whatisrt.github.io/][blog]] contain some additional information and documentation.
* Building and installing
Building with nix is the only setup that's actively maintained. Any other setup may or may not be broken.
- Using Nix
If you have installed =nix=, simply run =nix-build=. Alternatively, running =install.sh= will build and install the executable to the system.
- Manually
=Agda 2.6.2=, the Agda standard library (version 1.7), =bytestring-trie= and =containers= (the Haskell libraries) are required. If those are setup correctly, just use the makefile. If you are using =stack=, you can also try =make stack= (this will not install Agda and the Agda standard library for you though).
* Running the current tests/examples
The file =mced/Test.mced= contains the current tests. Run =meta-cedille --load Test= in the =mced= directory to execute all current tests.