for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
module PropLogic
class ThenTerm < Term
def initialize(term1, term2)
@terms = [term1, term2].freeze
end
def to_s(in_term = false)
str = "#{@terms[0].to_s(true)} => #{@terms[1].to_s(true)}"
in_term ? "( #{str} )" : str
def nnf?
false
def to_nnf
(~@terms[0]).to_nnf | @terms[1].to_nnf
def reduce
to_nnf.reduce