class ADSL::FOL::Or

Attributes

objs[R]

Public Class Methods

new(*objs) click to toggle source
# File lib/adsl/fol/first_order_logic.rb, line 86
def initialize(*objs)
  @objs = objs.flatten
end

Public Instance Methods

resolve_spass() click to toggle source
# File lib/adsl/fol/first_order_logic.rb, line 90
def resolve_spass
  children = @objs.map{ |child| child.resolve_spass }
  children = children.map{ |child| child.match('\Aor\((.*)\)\z') ? $1.split_by_zero_level_comma : child }.flatten
  children.delete_if{ |a| a == 'false' }
  return 'true' if children.include? 'true'
  return 'false' if children.empty?
  return children.first if children.length == 1
  return "or(#{children.join(', ')})"
end