Skip to content

jweissman/logic

Repository files navigation

logic

Code Climate GPA

Description

Logic is a logic programming framework for Ruby.

Features

  • Symbolic logic
  • Very simple SAT solver

Examples

require 'logic'

include Logic
prelude!                    # => [:a, :b, :c, :d, :t, :u, :v, :w, :x, :y, :z]

# construct logical propositions algebraically

expr = (a ^ -b) | (a > b)   # => (a and not b) or (a then b)

# find solutions

expr.solve
# => [{:a=>true, :b=>true},
#     {:a=>true, :b=>false},
#     {:a=>false, :b=>true},
#     {:a=>false, :b=>false}]

# simplify
((a > b) ^ a).reduce
# => b

Requirements

Ruby 2.x

Install

$ gem install logic
[...gem installation...]

Synopsis

$ logic
[...interactive environment, wip...]

Copyright

Copyright (c) 2016 Joseph Weissman

See {file:LICENSE.txt} for details.

About

logic programming in ruby

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published