Class: ADSL::FOL::Equal

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

Instance Method Summary collapse

Constructor Details

#initialize(*subformulae) ⇒ Equal

Returns a new instance of Equal.

Raises:

  • (ArgumentError)


138
139
140
141
# File 'lib/adsl/fol/first_order_logic.rb', line 138

def initialize(*subformulae)
  @subformulae = subformulae.flatten
  raise ArgumentError, "At least two subformulae required" if @subformulae.length < 2
end

Instance Method Details

#resolve_spassObject



143
144
145
146
147
148
149
150
# File 'lib/adsl/fol/first_order_logic.rb', line 143

def resolve_spass
  return @subformulae.first.resolve_spass if @subformulae.length == 1
  combinations = []
  (@subformulae.length-1).times do |index|
    combinations << "equal(#{@subformulae[index].resolve_spass}, #{@subformulae[index+1].resolve_spass})"
  end
  return And.new(combinations).resolve_spass
end