Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/BenRogersNewsome/First-Order-Logic
https://github.com/BenRogersNewsome/First-Order-Logic
Last synced: 1 day ago
JSON representation
- Host: GitHub
- URL: https://github.com/BenRogersNewsome/First-Order-Logic
- Owner: BenRogersNewsome
- License: mit
- Created: 2023-02-15T22:13:53.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2023-02-25T20:08:04.000Z (over 1 year ago)
- Last Synced: 2024-05-22T21:34:48.486Z (6 months ago)
- Language: Rust
- Size: 93.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
- awesome-rust-formalized-reasoning - Rust First Order Logic - syntax of First Order Logic with self-consistent logical assertions. (Projects / Libraries)
README
# Rust First Order Logic
A Rust implementation of the syntax of First Order Logic, and a logical 'harness' for making self-consistent logical assertions on a domain of discourse.
**Goals**:
- Construct and manipulate logical statements using the syntax of first-order logic.
- Define, and make assertions on, predicates and functions with self-consistent logical checking
- Expose an interface for integrating packages that implement (independent of this package) higher-level mathematical concepts (such as set theory) and interfacing with them through the language of FOL.**Non-goals**:
- Implement any formalism of set theory, or expose the idea of a set.
- Automated theorem proving
- Provide a base on which higher-level mathematical packages can be implemented.## Features
| Feature | Description | Status |
| ---------------------------- | ------------------------------------------------------------------- | :----: |
| **Logical Syntactics** | | |
| FOL grammar | A typed grammar for FOL | ✅ |
| Prenex Normal Form | A typing for PNF and conversion from others forms | ✅ |
| Skolem Normal Form | A typing for SNF and and conversion from other forms | ✅ |
| Conjunctive Normal Form | A typing for CNF and conversion from other forms | ✅ |
| **Logical Semantics** | | |
| Predicates | Graph support for asserting logical predicates | WIP |
| Functions | Graph support for defining logical functions | WIP |
| Bound Variables | Graph support for creating named bound variables | WIP |
| Logical sentence integration | The ability to directly apply syntactic statements to the FOL graph | Future |## Package Structure
---
### SyntaxDefines a strongly-typed grammar for first-order logic, together with a set of strongly-typed normal forms, and methods for converting between them.
### Semantics
Defines an in-memory graph structure that keeps track of logical statements and allows for self-consistent logical checking.
The graph is rarely operated on directly but is managed by the public interface created by the many default predicates and functions.