# File ai/csp/constraint.rb, line 100 def propagate(variable, level) value = variable.value uninstantiated_variables.each { |v| value_index = v.domain.index(value) if value_index.nil? or v.pruned?(level,value_index) next end v.prune(level,value_index) return false if v.domain_empty?(level) } true end