All Projects → AndyShiue → Pts

AndyShiue / Pts

implementation of Pure Type Systems (PTS) in Rust.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Pts

Krivine-Machine
Abstract krivine machine implementing call-by-name semantics. In OCaml.
Stars: ✭ 34 (-17.07%)
Mutual labels:  lambda-calculus
Cedille
Cedille, a dependently typed programming languages based on the Calculus of Dependent Lambda Eliminations
Stars: ✭ 289 (+604.88%)
Mutual labels:  lambda-calculus
Fp Core.rs
A library for functional programming in Rust
Stars: ✭ 772 (+1782.93%)
Mutual labels:  lambda-calculus
lunarflow
Lambda calculus go brrrr
Stars: ✭ 27 (-34.15%)
Mutual labels:  lambda-calculus
lplzoo
Fine-grain implementations of common lambda calculi in Haskell, tested with QuickCheck
Stars: ✭ 32 (-21.95%)
Mutual labels:  lambda-calculus
Lambda Talk
A Flock of Functions: Combinators, Lambda Calculus, & Church Encodings in JS
Stars: ✭ 315 (+668.29%)
Mutual labels:  lambda-calculus
lambda
lambda calculus interpreter
Stars: ✭ 23 (-43.9%)
Mutual labels:  lambda-calculus
Zion
A statically-typed strictly-evaluated garbage-collected readable programming language.
Stars: ✭ 33 (-19.51%)
Mutual labels:  lambda-calculus
Write You A Haskell
Building a modern functional compiler from first principles. (http://dev.stephendiehl.com/fun/)
Stars: ✭ 3,064 (+7373.17%)
Mutual labels:  lambda-calculus
Hol
Canonical sources for HOL4 theorem-proving system. Branch `develop` is where “mainline development” occurs; when `develop` passes our regression tests, `master` is merged forward to catch up.
Stars: ✭ 414 (+909.76%)
Mutual labels:  lambda-calculus
Type-Theory
Lecture note on Lambda Calculus and Types for FLOLAC
Stars: ✭ 26 (-36.59%)
Mutual labels:  lambda-calculus
types-and-programming-languages
Exercises from Benjamin Pierce's "Types and Programming Languages" textbook + extras!
Stars: ✭ 92 (+124.39%)
Mutual labels:  lambda-calculus
Magic In Ten Mins
十分钟魔法练习
Stars: ✭ 327 (+697.56%)
Mutual labels:  lambda-calculus
lambda-fibonacci
Implementation of the Fibonacci sequence in JS using pure Lambda Calculus
Stars: ✭ 18 (-56.1%)
Mutual labels:  lambda-calculus
Aws Lambda Workshop
Some incremental examples suitable to host an AWS Lambda Functions workshop
Stars: ✭ 18 (-56.1%)
Mutual labels:  lambda-calculus
salt
The compilation target that functional programmers always wanted.
Stars: ✭ 62 (+51.22%)
Mutual labels:  lambda-calculus
Lambda
🔮 Estudos obscuros de programação funcional
Stars: ✭ 297 (+624.39%)
Mutual labels:  lambda-calculus
Ltext
λtext - higher-order file applicator
Stars: ✭ 37 (-9.76%)
Mutual labels:  lambda-calculus
Dblib Linear
Formalisation of the linear lambda calculus in Coq
Stars: ✭ 10 (-75.61%)
Mutual labels:  lambda-calculus
Plam
An interpreter for learning and exploring pure λ-calculus
Stars: ✭ 385 (+839.02%)
Mutual labels:  lambda-calculus

PTS (Pure Type Systems)

Build Status

This is an implementation of pure type systems written in Rust. It's basically a rewrite from the Haskell version, Simpler, Easier!


Installation:

  1. First make sure Rust (and obviously also git) has already been installed on your machine.

  2. Clone this repository: git clone https://github.com/AndyShiue/pts.git

  3. Navigate to the root of the project: cd pts

  4. Run cargo test to run all the tests in the project. It might take some time.


Originally, lambda calculus is invented to be a Turing-complete model of computation. Subsequent works add type systems on top of the lambda calculus, usually making it not Turing-complete, but stronger type systems lead to the ability to write mathematical proofs in it. Pure type systems are a generalization of the lambda cube, which consists of the simply typed lambda calculus, system F, calculus of constructions, etc. In this implementation, you can define your own pure type systems, consisting of one or more, or even infinite sorts. Currently, this project can only be used as a library, not an application, because I haven't dealt with parsing stuff. See the tests at the end of the source code and also the comments for thorough explanation of the algorithms.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].