class ADSL::FOL::Not

Public Class Methods

new(*formulae) click to toggle source
# File lib/adsl/fol/first_order_logic.rb, line 52
def initialize(*formulae)
  @formulae = formulae.flatten
  raise ArgumentError, "At least one subformula required" if @formulae.empty?
end

Public Instance Methods

resolve_spass() click to toggle source
# File lib/adsl/fol/first_order_logic.rb, line 57
def resolve_spass
  children = @formulae.map{ |obj| obj.resolve_spass }
  children.delete_if{ |a| a == 'false' }
  return 'false' if children.include? 'true'
  return And.new(children.map{ |child| child.match('\Anot\((.*)\)\z') ? $1 : "not(#{child})" }).resolve_spass
end