class PropLogic::Variable

Public Class Methods

new(name = nil) click to toggle source
# File lib/prop_logic/variable.rb, line 3
def initialize(name = nil)
  @name = name || "v_#{object_id}"
  @terms = [].freeze
  freeze
end
new() click to toggle source

@raise NotImplementedError Term is abstract class.

# File lib/prop_logic/term.rb, line 13
def initialize
  raise NotImplementedError, 'Term cannot be initialized'
end

Public Instance Methods

-@()
Alias for: not
assign(trues, falses, variables = nil) click to toggle source
# File lib/prop_logic/variable.rb, line 39
def assign(trues, falses, variables = nil)
  if trues.include? self
    True
  elsif falses.include? self
    False
  else
    self
  end
end
cnf?() click to toggle source
# File lib/prop_logic/variable.rb, line 31
def cnf?
  true
end
nnf?() click to toggle source
# File lib/prop_logic/variable.rb, line 15
def nnf?
  true
end
not() click to toggle source

bypassing Term.get @return [NotTerm] negated variable

# File lib/prop_logic/variable.rb, line 51
def not
  Term.__send__ :cached, NotTerm, self
end
Also aliased as: ~, -@
reduced?() click to toggle source
# File lib/prop_logic/variable.rb, line 19
def reduced?
  true
end
to_cnf() click to toggle source
# File lib/prop_logic/variable.rb, line 23
def to_cnf
  self
end
to_s(*) click to toggle source
# File lib/prop_logic/variable.rb, line 11
def to_s(*)
  @name
end
tseitin(pool) click to toggle source
# File lib/prop_logic/variable.rb, line 27
def tseitin(pool)
  self
end
variables() click to toggle source
# File lib/prop_logic/variable.rb, line 35
def variables
  [self]
end
~()
Alias for: not