logic-lang

Crates.iologic-lang
lib.rslogic-lang
version0.0.2
sourcesrc
created_at2023-02-10 13:00:20.941835
updated_at2023-02-21 10:57:37.379939
descriptionstructural logic based on equivalence graphs
homepagehttps://logic-lang.github.io
repositoryhttps://github.com/logic-lang/logic/
max_upload_size
id781838
size16,871
Hugo Frezat (hrkz)

documentation

README

logic

Example

structural logic based on equivalence graphs

License Crate Docs Build


Logic is a modern structural logic library based on equivalence graphs. It allows defining a (term-based) language as an abstract syntax tree (AST) associated with rewriting rules expressing equivalence relations. Applying rules using equality saturation is performed by a three-stages process based on different "intermediate representations (IRs)".


Note: this is an exploratory project.

Current state

  • The public API is constantly evolving and substantial changes are expected prior to stable releases (x.0.0).
  • Feel free to suggest problems that could help to improve the library and provide realistic use cases.
  • Help is welcomed.

Getting started

An extensive tutorial is currently under construction, but you can still read the documentation for the latest version or browse the sources.

It is recommanded to use nightly Rust but Logic should build just fine on stable (MSRV 1.69). The standard cargo fmt, clippy, test and bench workflow is available.

Try the web demo running on WebAssembly.

Commit count: 8

cargo fmt