# File ai/csp/constraint.rb, line 59 def propagate(variable, level) return true unless v = forward_checkable? v.each_value_with_index(level) { |value,index| v.value = value v.prune(level, index) unless check? } v.value = UNSET not v.domain_empty?(level) end