Class: ADSL::FOL::Not

Inherits:
Object show all
Defined in:
lib/adsl/fol/first_order_logic.rb

Instance Method Summary collapse

Constructor Details

#initialize(*formulae) ⇒ Not

Returns a new instance of Not.

Raises:

  • (ArgumentError)


52
53
54
55
# 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

Instance Method Details

#resolve_spassObject



57
58
59
60
61
62
# 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