https://github.com/andrew-johnson-4/LSTS
Large Scale Type Systems (programming language)
https://github.com/andrew-johnson-4/LSTS
assisted-reasoning ast category-theory compiler dependent-types error-reporting lambda-calculus lambda-calculus-interpreter language lexer lint lsts parser proof-assistant refinement-types rust theorem-prover type-checking
Last synced: 3 days ago
JSON representation
Large Scale Type Systems (programming language)
- Host: GitHub
- URL: https://github.com/andrew-johnson-4/LSTS
- Owner: andrew-johnson-4
- License: mit
- Created: 2021-09-10T02:12:03.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-03-04T05:46:48.000Z (about 1 year ago)
- Last Synced: 2024-05-22T19:33:43.215Z (11 months ago)
- Topics: assisted-reasoning, ast, category-theory, compiler, dependent-types, error-reporting, lambda-calculus, lambda-calculus-interpreter, language, lexer, lint, lsts, parser, proof-assistant, refinement-types, rust, theorem-prover, type-checking
- Language: Rust
- Homepage: https://andrew-johnson-4.github.io/lsts-tutorial/
- Size: 1.16 MB
- Stars: 99
- Watchers: 4
- Forks: 3
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-programming-languages - LSTS - LSTS is a proof assistant and maybe a programming language. Proofs in LSTS are built by connecting terms, type definitions, and quantified statements. Terms can be evaluated to obtain Values. Types describe properties of Terms. Statements describe relations between Terms and Types. (Uncategorized / Uncategorized)
- awesome-rust-formalized-reasoning - LSTS - proof assistant that is also a programming language. (Projects / Provers and Solvers)
README
LSTS is a programming language and proof assistant.
The goal for this project is to integrate formal methods with natural programming habits.
By moving proof-theoretical concepts entirely to libraries,
programmers can hopefully benefit from improved sanity without too much additional stress.Proofs in LSTS are built by connecting terms, type definitions, and quantified statements.
Terms can be evaluated to obtain Values.
Types describe properties of Terms.
Statements describe relations between Terms and Types.### [Tutorial](https://github.com/andrew-johnson-4/LSTS/wiki)
### [Documentation](https://andrew-johnson-4.github.io/lsts-language-reference/)
### [Discord](https://discord.gg/sW2ksPY9jj)### Performance
The default LSTS backend compiles to C with little or no overhead or runtime dependencies.
Previously, the compiler generated x86-Linux objects directly, however this was approximately 3x slower than the C backend.
We will revisit the direct targets to generate fully certified builds.
Until then, C is the default backend.