class Satre::Or
Attributes
left_disjunct[R]
right_disjunct[R]
Public Class Methods
new(left_disjunct, right_disjunct)
click to toggle source
# File lib/satre/formula/propositional_logic/or.rb, line 8 def initialize(left_disjunct, right_disjunct) fail(ArgumentError, 'Argument must be a Formula') unless left_disjunct.is_a?(Formula) fail(ArgumentError, 'Argument must be a Formula') unless right_disjunct.is_a?(Formula) @left_disjunct = left_disjunct.dup.freeze @right_disjunct = right_disjunct.dup.freeze end
Public Instance Methods
atoms()
click to toggle source
# File lib/satre/formula/propositional_logic/or.rb, line 32 def atoms atoms = left_disjunct.atoms + right_disjunct.atoms atoms.uniq || [] end
eval(valudation)
click to toggle source
# File lib/satre/formula/propositional_logic/or.rb, line 28 def eval(valudation) left_disjunct.eval(valudation) or right_disjunct.eval(valudation) end
holds?(domain, func, pred, valudation)
click to toggle source
# File lib/satre/formula/propositional_logic/or.rb, line 19 def holds?(domain, func, pred, valudation) left_disjunct.holds?(domain, func, pred, valudation) or right_disjunct.holds?(domain, func, pred, valudation) end
to_s()
click to toggle source
# File lib/satre/formula/propositional_logic/or.rb, line 15 def to_s "(#{left_disjunct} ∨ #{right_disjunct})" end
wellformed?(sig)
click to toggle source
p // q is well-formed if p and q are well-formed
# File lib/satre/formula/propositional_logic/or.rb, line 24 def wellformed?(sig) left_disjunct.wellformed?(sig) && right_disjunct.wellformed?(sig) end