# File ai/csp/problem.rb, line 47
        def add_constraint(*variables, &block)
            if block_given?
                vars = variables.collect { |v|
                    v.kind_of?(Variable) ? v : @name_to_var[v]
                }
                con = Constraint.new(*vars, &block)
            elsif variables.length == 1 and variables[0].kind_of?(Constraint)
                con = variables[0]
            else
                raise 'Some usage message here ...'
            end
            
            @constraints << con
            con.variables.each {|v|
                cons = (@var_to_con[v] or [])
                @var_to_con[v] = cons + [con]
            }
            con
        end