<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def check_instance( mzn, *dzn_files, data=None, include=None, stdlib_dir=None, globals_dir=None, allow_multiple_assignments=False ):
 """Perform instance checking on a model + data. This function calls the command ``minizinc --instance-check-only`` to check for consistency of the given model + data. Parameters mzn : str The minizinc model. This can be either the path to the ``.mzn`` file or the content of the model itself. *dzn_files A list of paths to dzn files to attach to the minizinc execution, provided as positional arguments; by default no data file is attached. data : dict Additional data as a list of strings containing dzn variables assignments. include : str or list One or more additional paths to search for included ``.mzn`` files. stdlib_dir : str The path to the MiniZinc standard library. Provide it only if it is different from the default one. globals_dir : str The path to the MiniZinc globals directory. Provide it only if it is different from the default one. allow_multiple_assignments : bool Whether to allow multiple assignments of variables. Sometimes is convenient to simply let the data file override the value already assigned in the minizinc file. Default is ``False``. Raises ------ ``MiniZincError`` if instance checking fails. """


    args = ['--instance-check-only']
    args += _flattening_args(
        mzn, *dzn_files, data=data, include=include, stdlib_dir=stdlib_dir,
        globals_dir=globals_dir,
        allow_multiple_assignments=allow_multiple_assignments
    )

    input = mzn if args[-1] == '-' else None
    proc = _run_minizinc_proc(*args, input=input)

    if proc.stderr_data:
        raise MiniZincError(
            mzn if input is None else '\n' + mzn + '\n', args, proc.stderr_data
        )