Skip to content
This repository has been archived by the owner on Jul 31, 2022. It is now read-only.
/ illogical Public archive

Easy-to-use first order logic tools & Scala library

Notifications You must be signed in to change notification settings

maxadamski/illogical

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Illogical (WIP)

Easy-to-use first order logic tools.

Features

  • Formula transformations
    • Express in terms of AND, OR, NOT
    • De Morgan's laws
    • Quantifier negation
    • Conjunctive normal form (CNF)
    • Prenex normal form (PNF)
    • Substitute variables, etc.
  • Skolemization
    • Substitute Skolem's function
  • Unification
    • Most general unifier (MGU)
  • Semantic tableaux method (MTS)
  • Resolution method
  • CLI client
  • Web client

How to run

sbt run

How to test

sbt ~test

Grammar

Qu      → ∀ | ∃
Op      → ∧ | ∨ | …
Id      → [a-z]+[0-9]*[']*
Con     → @Id
Var     → Id
Func    → Id
Pred    → Id

Args    → Term | Term, Args → List(Term)
Term    → Con | Var | Func(Args)
Atom    → Pred(Args)
Form    → Atom | ¬Form | Form Op Form | Qu Var Form
Literal → Atom | ¬Atom
Clause  → Literal ∨ Literal

Releases

No releases published

Packages

No packages published

Languages