Skip to content

BenRogersNewsome/First-Order-Logic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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


Syntax

Defines 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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages