# This file was automatically generated by SWIG (http://www.swig.org).
# Version 3.0.10
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.





from sys import version_info as _swig_python_version_info
if _swig_python_version_info >= (2, 7, 0):
    def swig_import_helper():
        import importlib
        pkg = __name__.rpartition('.')[0]
        mname = '.'.join((pkg, '_bdd')).lstrip('.')
        try:
            return importlib.import_module(mname)
        except ImportError:
            return importlib.import_module('_bdd')
    _bdd = swig_import_helper()
    del swig_import_helper
elif _swig_python_version_info >= (2, 6, 0):
    def swig_import_helper():
        from os.path import dirname
        import imp
        fp = None
        try:
            fp, pathname, description = imp.find_module('_bdd', [dirname(__file__)])
        except ImportError:
            import _bdd
            return _bdd
        if fp is not None:
            try:
                _mod = imp.load_module('_bdd', fp, pathname, description)
            finally:
                fp.close()
            return _mod
    _bdd = swig_import_helper()
    del swig_import_helper
else:
    import _bdd
del _swig_python_version_info
try:
    _swig_property = property
except NameError:
    pass  # Python < 2.2 doesn't have 'property'.

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_setattr_nondynamic(self, class_type, name, value, static=1):
    if (name == "thisown"):
        return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'SwigPyObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name, None)
    if method:
        return method(self, value)
    if (not static):
        if _newclass:
            object.__setattr__(self, name, value)
        else:
            self.__dict__[name] = value
    else:
        raise AttributeError("You cannot add attributes to %s" % self)


def _swig_setattr(self, class_type, name, value):
    return _swig_setattr_nondynamic(self, class_type, name, value, 0)


def _swig_getattr(self, class_type, name):
    if (name == "thisown"):
        return self.this.own()
    method = class_type.__swig_getmethods__.get(name, None)
    if method:
        return method(self)
    raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name))


def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)

try:
    _object = object
    _newclass = 1
except __builtin__.Exception:
    class _object:
        pass
    _newclass = 0

class BddFsm(_object):
    """Proxy of C BddFsm_TAG struct."""

    __swig_setmethods__ = {}
    __setattr__ = lambda self, name, value: _swig_setattr(self, BddFsm, name, value)
    __swig_getmethods__ = {}
    __getattr__ = lambda self, name: _swig_getattr(self, BddFsm, name)
    __repr__ = _swig_repr
    __swig_setmethods__["dd"] = _bdd.BddFsm_dd_set
    __swig_getmethods__["dd"] = _bdd.BddFsm_dd_get
    if _newclass:
        dd = _swig_property(_bdd.BddFsm_dd_get, _bdd.BddFsm_dd_set)
    __swig_setmethods__["symb_table"] = _bdd.BddFsm_symb_table_set
    __swig_getmethods__["symb_table"] = _bdd.BddFsm_symb_table_get
    if _newclass:
        symb_table = _swig_property(_bdd.BddFsm_symb_table_get, _bdd.BddFsm_symb_table_set)
    __swig_setmethods__["enc"] = _bdd.BddFsm_enc_set
    __swig_getmethods__["enc"] = _bdd.BddFsm_enc_get
    if _newclass:
        enc = _swig_property(_bdd.BddFsm_enc_get, _bdd.BddFsm_enc_set)
    __swig_setmethods__["init"] = _bdd.BddFsm_init_set
    __swig_getmethods__["init"] = _bdd.BddFsm_init_get
    if _newclass:
        init = _swig_property(_bdd.BddFsm_init_get, _bdd.BddFsm_init_set)
    __swig_setmethods__["invar_states"] = _bdd.BddFsm_invar_states_set
    __swig_getmethods__["invar_states"] = _bdd.BddFsm_invar_states_get
    if _newclass:
        invar_states = _swig_property(_bdd.BddFsm_invar_states_get, _bdd.BddFsm_invar_states_set)
    __swig_setmethods__["invar_inputs"] = _bdd.BddFsm_invar_inputs_set
    __swig_getmethods__["invar_inputs"] = _bdd.BddFsm_invar_inputs_get
    if _newclass:
        invar_inputs = _swig_property(_bdd.BddFsm_invar_inputs_get, _bdd.BddFsm_invar_inputs_set)
    __swig_setmethods__["trans"] = _bdd.BddFsm_trans_set
    __swig_getmethods__["trans"] = _bdd.BddFsm_trans_get
    if _newclass:
        trans = _swig_property(_bdd.BddFsm_trans_get, _bdd.BddFsm_trans_set)
    __swig_setmethods__["justice"] = _bdd.BddFsm_justice_set
    __swig_getmethods__["justice"] = _bdd.BddFsm_justice_get
    if _newclass:
        justice = _swig_property(_bdd.BddFsm_justice_get, _bdd.BddFsm_justice_set)
    __swig_setmethods__["compassion"] = _bdd.BddFsm_compassion_set
    __swig_getmethods__["compassion"] = _bdd.BddFsm_compassion_get
    if _newclass:
        compassion = _swig_property(_bdd.BddFsm_compassion_get, _bdd.BddFsm_compassion_set)
    __swig_setmethods__["cache"] = _bdd.BddFsm_cache_set
    __swig_getmethods__["cache"] = _bdd.BddFsm_cache_get
    if _newclass:
        cache = _swig_property(_bdd.BddFsm_cache_get, _bdd.BddFsm_cache_set)

    def __init__(self):
        """__init__(BddFsm_TAG self) -> BddFsm"""
        this = _bdd.new_BddFsm()
        try:
            self.this.append(this)
        except __builtin__.Exception:
            self.this = this
    __swig_destroy__ = _bdd.delete_BddFsm
    __del__ = lambda self: None
BddFsm_swigregister = _bdd.BddFsm_swigregister
BddFsm_swigregister(BddFsm)


def justiceList2fairnessList(l: 'JusticeList_ptr') -> "FairnessList_ptr":
    """justiceList2fairnessList(JusticeList_ptr l) -> FairnessList_ptr"""
    return _bdd.justiceList2fairnessList(l)
PRIuPTR = _bdd.PRIuPTR
PRIdPTR = _bdd.PRIdPTR
LLU = _bdd.LLU
LLO = _bdd.LLO
LLX = _bdd.LLX
false = _bdd.false
true = _bdd.true
OUTCOME_GENERIC_ERROR = _bdd.OUTCOME_GENERIC_ERROR
OUTCOME_PARSER_ERROR = _bdd.OUTCOME_PARSER_ERROR
OUTCOME_SYNTAX_ERROR = _bdd.OUTCOME_SYNTAX_ERROR
OUTCOME_FILE_ERROR = _bdd.OUTCOME_FILE_ERROR
OUTCOME_SUCCESS_REQUIRED_HELP = _bdd.OUTCOME_SUCCESS_REQUIRED_HELP
OUTCOME_SUCCESS = _bdd.OUTCOME_SUCCESS
BDD_ELFWD_OPT_FORWARD_SEARCH = _bdd.BDD_ELFWD_OPT_FORWARD_SEARCH
BDD_ELFWD_OPT_LTL_TABLEAU_FORWARD_SEARCH = _bdd.BDD_ELFWD_OPT_LTL_TABLEAU_FORWARD_SEARCH
BDD_ELFWD_OPT_USE_REACHABLE_STATES = _bdd.BDD_ELFWD_OPT_USE_REACHABLE_STATES
BDD_ELFWD_OPT_COUNTER_EXAMPLES = _bdd.BDD_ELFWD_OPT_COUNTER_EXAMPLES
BDD_ELFWD_OPT_ALL = _bdd.BDD_ELFWD_OPT_ALL
BDD_OREG_JUSTICE_EMPTINESS_BDD_ALGORITHM_INVALID = _bdd.BDD_OREG_JUSTICE_EMPTINESS_BDD_ALGORITHM_INVALID
BDD_OREG_JUSTICE_EMPTINESS_BDD_ALGORITHM_EL_BWD = _bdd.BDD_OREG_JUSTICE_EMPTINESS_BDD_ALGORITHM_EL_BWD
BDD_OREG_JUSTICE_EMPTINESS_BDD_ALGORITHM_EL_FWD = _bdd.BDD_OREG_JUSTICE_EMPTINESS_BDD_ALGORITHM_EL_FWD
BDD_OREG_JUSTICE_EMPTINESS_BDD_ALGORITHM_MIN_VALID = _bdd.BDD_OREG_JUSTICE_EMPTINESS_BDD_ALGORITHM_MIN_VALID
BDD_OREG_JUSTICE_EMPTINESS_BDD_ALGORITHM_MAX_VALID = _bdd.BDD_OREG_JUSTICE_EMPTINESS_BDD_ALGORITHM_MAX_VALID

def Bdd_Init() -> "void":
    """Bdd_Init()"""
    return _bdd.Bdd_Init()

def Bdd_End() -> "void":
    """Bdd_End()"""
    return _bdd.Bdd_End()

def Bdd_BddOregJusticeEmptinessBddAlgorithmType_from_string(name: 'char const *') -> "BddOregJusticeEmptinessBddAlgorithmType":
    """Bdd_BddOregJusticeEmptinessBddAlgorithmType_from_string(char const * name) -> BddOregJusticeEmptinessBddAlgorithmType"""
    return _bdd.Bdd_BddOregJusticeEmptinessBddAlgorithmType_from_string(name)

def Bdd_BddOregJusticeEmptinessBddAlgorithmType_to_string(arg1: 'BddOregJusticeEmptinessBddAlgorithmType const') -> "char const *":
    """Bdd_BddOregJusticeEmptinessBddAlgorithmType_to_string(BddOregJusticeEmptinessBddAlgorithmType const arg1) -> char const *"""
    return _bdd.Bdd_BddOregJusticeEmptinessBddAlgorithmType_to_string(arg1)

def Bdd_print_available_BddOregJusticeEmptinessBddAlgorithms(file: 'FILE *') -> "void":
    """Bdd_print_available_BddOregJusticeEmptinessBddAlgorithms(FILE * file)"""
    return _bdd.Bdd_print_available_BddOregJusticeEmptinessBddAlgorithms(file)

def Bdd_elfwd_check_options(which_options: 'unsigned int', on_fail_print: 'boolean') -> "boolean":
    """Bdd_elfwd_check_options(unsigned int which_options, boolean on_fail_print) -> boolean"""
    return _bdd.Bdd_elfwd_check_options(which_options, on_fail_print)

def Bdd_elfwd_check_set_and_save_options(which_options: 'unsigned int') -> "BddELFwdSavedOptions_ptr":
    """Bdd_elfwd_check_set_and_save_options(unsigned int which_options) -> BddELFwdSavedOptions_ptr"""
    return _bdd.Bdd_elfwd_check_set_and_save_options(which_options)

def Bdd_elfwd_restore_options(which_options: 'unsigned int', saved_options: 'BddELFwdSavedOptions_ptr') -> "void":
    """Bdd_elfwd_restore_options(unsigned int which_options, BddELFwdSavedOptions_ptr saved_options)"""
    return _bdd.Bdd_elfwd_restore_options(which_options, saved_options)
BDD_FSM_DIR_BWD = _bdd.BDD_FSM_DIR_BWD
BDD_FSM_DIR_FWD = _bdd.BDD_FSM_DIR_FWD

def BddFsm_create(encoding: 'BddEnc_ptr', init: 'BddStates', invar_states: 'BddInvarStates', invar_inputs: 'BddInvarInputs', trans: 'BddTrans_ptr', justice: 'JusticeList_ptr', compassion: 'CompassionList_ptr') -> "BddFsm_ptr":
    """BddFsm_create(BddEnc_ptr encoding, BddStates init, BddInvarStates invar_states, BddInvarInputs invar_inputs, BddTrans_ptr trans, JusticeList_ptr justice, CompassionList_ptr compassion) -> BddFsm"""
    return _bdd.BddFsm_create(encoding, init, invar_states, invar_inputs, trans, justice, compassion)

def BddFsm_destroy(arg1: 'BddFsm') -> "void":
    """BddFsm_destroy(BddFsm arg1)"""
    return _bdd.BddFsm_destroy(arg1)

def BddFsm_copy(arg1: 'BddFsm') -> "BddFsm_ptr":
    """BddFsm_copy(BddFsm arg1) -> BddFsm"""
    return _bdd.BddFsm_copy(arg1)

def BddFsm_copy_cache(arg1: 'BddFsm', other: 'BddFsm', keep_family: 'boolean') -> "void":
    """BddFsm_copy_cache(BddFsm arg1, BddFsm other, boolean keep_family)"""
    return _bdd.BddFsm_copy_cache(arg1, other, keep_family)

def BddFsm_get_justice(arg1: 'BddFsm') -> "JusticeList_ptr":
    """BddFsm_get_justice(BddFsm arg1) -> JusticeList_ptr"""
    return _bdd.BddFsm_get_justice(arg1)

def BddFsm_get_compassion(arg1: 'BddFsm') -> "CompassionList_ptr":
    """BddFsm_get_compassion(BddFsm arg1) -> CompassionList_ptr"""
    return _bdd.BddFsm_get_compassion(arg1)

def BddFsm_get_init(arg1: 'BddFsm') -> "BddStates":
    """BddFsm_get_init(BddFsm arg1) -> BddStates"""
    return _bdd.BddFsm_get_init(arg1)

def BddFsm_get_bdd_encoding(arg1: 'BddFsm') -> "BddEnc_ptr":
    """BddFsm_get_bdd_encoding(BddFsm arg1) -> BddEnc_ptr"""
    return _bdd.BddFsm_get_bdd_encoding(arg1)

def BddFsm_get_state_constraints(arg1: 'BddFsm') -> "BddInvarStates":
    """BddFsm_get_state_constraints(BddFsm arg1) -> BddInvarStates"""
    return _bdd.BddFsm_get_state_constraints(arg1)

def BddFsm_get_input_constraints(arg1: 'BddFsm') -> "BddInvarInputs":
    """BddFsm_get_input_constraints(BddFsm arg1) -> BddInvarInputs"""
    return _bdd.BddFsm_get_input_constraints(arg1)

def BddFsm_get_trans(arg1: 'BddFsm') -> "BddTrans_ptr":
    """BddFsm_get_trans(BddFsm arg1) -> BddTrans_ptr"""
    return _bdd.BddFsm_get_trans(arg1)

def BddFsm_get_fair_states(arg1: 'BddFsm') -> "BddStates":
    """BddFsm_get_fair_states(BddFsm arg1) -> BddStates"""
    return _bdd.BddFsm_get_fair_states(arg1)

def BddFsm_get_fair_states_inputs(arg1: 'BddFsm') -> "BddStatesInputs":
    """BddFsm_get_fair_states_inputs(BddFsm arg1) -> BddStatesInputs"""
    return _bdd.BddFsm_get_fair_states_inputs(arg1)

def BddFsm_get_revfair_states(arg1: 'BddFsm') -> "BddStates":
    """BddFsm_get_revfair_states(BddFsm arg1) -> BddStates"""
    return _bdd.BddFsm_get_revfair_states(arg1)

def BddFsm_get_revfair_states_inputs(arg1: 'BddFsm') -> "BddStatesInputs":
    """BddFsm_get_revfair_states_inputs(BddFsm arg1) -> BddStatesInputs"""
    return _bdd.BddFsm_get_revfair_states_inputs(arg1)

def BddFsm_get_monolithic_trans_bdd(arg1: 'BddFsm') -> "bdd_ptr":
    """BddFsm_get_monolithic_trans_bdd(BddFsm arg1) -> bdd_ptr"""
    return _bdd.BddFsm_get_monolithic_trans_bdd(arg1)

def BddFsm_reachable_states_computed(arg1: 'BddFsm') -> "boolean":
    """BddFsm_reachable_states_computed(BddFsm arg1) -> boolean"""
    return _bdd.BddFsm_reachable_states_computed(arg1)

def BddFsm_get_reachable_states(arg1: 'BddFsm') -> "BddStates":
    """BddFsm_get_reachable_states(BddFsm arg1) -> BddStates"""
    return _bdd.BddFsm_get_reachable_states(arg1)

def BddFsm_copy_reachable_states(arg1: 'BddFsm', other: 'BddFsm', keep_family: 'boolean', force_calculation: 'boolean') -> "void":
    """BddFsm_copy_reachable_states(BddFsm arg1, BddFsm other, boolean keep_family, boolean force_calculation)"""
    return _bdd.BddFsm_copy_reachable_states(arg1, other, keep_family, force_calculation)

def BddFsm_get_reachable_states_at_distance(arg1: 'BddFsm', distance: 'int') -> "BddStates":
    """BddFsm_get_reachable_states_at_distance(BddFsm arg1, int distance) -> BddStates"""
    return _bdd.BddFsm_get_reachable_states_at_distance(arg1, distance)

def BddFsm_get_distance_of_states(arg1: 'BddFsm', states: 'BddStates') -> "int":
    """BddFsm_get_distance_of_states(BddFsm arg1, BddStates states) -> int"""
    return _bdd.BddFsm_get_distance_of_states(arg1, states)

def BddFsm_get_minimum_distance_of_states(arg1: 'BddFsm', states: 'BddStates') -> "int":
    """BddFsm_get_minimum_distance_of_states(BddFsm arg1, BddStates states) -> int"""
    return _bdd.BddFsm_get_minimum_distance_of_states(arg1, states)

def BddFsm_get_diameter(arg1: 'BddFsm') -> "int":
    """BddFsm_get_diameter(BddFsm arg1) -> int"""
    return _bdd.BddFsm_get_diameter(arg1)

def BddFsm_get_not_successor_states(arg1: 'BddFsm') -> "BddStates":
    """BddFsm_get_not_successor_states(BddFsm arg1) -> BddStates"""
    return _bdd.BddFsm_get_not_successor_states(arg1)

def BddFsm_get_deadlock_states(arg1: 'BddFsm') -> "BddStates":
    """BddFsm_get_deadlock_states(BddFsm arg1) -> BddStates"""
    return _bdd.BddFsm_get_deadlock_states(arg1)

def BddFsm_is_total(arg1: 'BddFsm') -> "boolean":
    """BddFsm_is_total(BddFsm arg1) -> boolean"""
    return _bdd.BddFsm_is_total(arg1)

def BddFsm_is_deadlock_free(arg1: 'BddFsm') -> "boolean":
    """BddFsm_is_deadlock_free(BddFsm arg1) -> boolean"""
    return _bdd.BddFsm_is_deadlock_free(arg1)

def BddFsm_get_forward_image(arg1: 'BddFsm', states: 'BddStates') -> "BddStates":
    """BddFsm_get_forward_image(BddFsm arg1, BddStates states) -> BddStates"""
    return _bdd.BddFsm_get_forward_image(arg1, states)

def BddFsm_get_constrained_forward_image(arg1: 'BddFsm', states: 'BddStates', constraints: 'BddStatesInputsNexts') -> "BddStates":
    """BddFsm_get_constrained_forward_image(BddFsm arg1, BddStates states, BddStatesInputsNexts constraints) -> BddStates"""
    return _bdd.BddFsm_get_constrained_forward_image(arg1, states, constraints)

def BddFsm_get_sins_constrained_forward_image(arg1: 'BddFsm', states: 'BddStates', constraints: 'BddStatesInputsNexts') -> "BddStates":
    """BddFsm_get_sins_constrained_forward_image(BddFsm arg1, BddStates states, BddStatesInputsNexts constraints) -> BddStates"""
    return _bdd.BddFsm_get_sins_constrained_forward_image(arg1, states, constraints)

def BddFsm_get_forward_image_states_inputs(arg1: 'BddFsm', si: 'BddStatesInputs') -> "BddStatesInputs":
    """BddFsm_get_forward_image_states_inputs(BddFsm arg1, BddStatesInputs si) -> BddStatesInputs"""
    return _bdd.BddFsm_get_forward_image_states_inputs(arg1, si)

def BddFsm_get_constrained_forward_image_states_inputs(arg1: 'BddFsm', si: 'BddStatesInputs', constraints: 'BddStatesInputsNexts') -> "BddStatesInputs":
    """BddFsm_get_constrained_forward_image_states_inputs(BddFsm arg1, BddStatesInputs si, BddStatesInputsNexts constraints) -> BddStatesInputs"""
    return _bdd.BddFsm_get_constrained_forward_image_states_inputs(arg1, si, constraints)

def BddFsm_get_backward_image(arg1: 'BddFsm', states: 'BddStates') -> "BddStates":
    """BddFsm_get_backward_image(BddFsm arg1, BddStates states) -> BddStates"""
    return _bdd.BddFsm_get_backward_image(arg1, states)

def BddFsm_get_constrained_backward_image(arg1: 'BddFsm', states: 'BddStates', constraints: 'BddStatesInputsNexts') -> "BddStates":
    """BddFsm_get_constrained_backward_image(BddFsm arg1, BddStates states, BddStatesInputsNexts constraints) -> BddStates"""
    return _bdd.BddFsm_get_constrained_backward_image(arg1, states, constraints)

def BddFsm_get_weak_backward_image(arg1: 'BddFsm', states: 'BddStates') -> "BddStatesInputs":
    """BddFsm_get_weak_backward_image(BddFsm arg1, BddStates states) -> BddStatesInputs"""
    return _bdd.BddFsm_get_weak_backward_image(arg1, states)

def BddFsm_get_k_backward_image(arg1: 'BddFsm', states: 'BddStates', k: 'int') -> "BddStatesInputs":
    """BddFsm_get_k_backward_image(BddFsm arg1, BddStates states, int k) -> BddStatesInputs"""
    return _bdd.BddFsm_get_k_backward_image(arg1, states, k)

def BddFsm_get_strong_backward_image(arg1: 'BddFsm', states: 'BddStates') -> "BddStatesInputs":
    """BddFsm_get_strong_backward_image(BddFsm arg1, BddStates states) -> BddStatesInputs"""
    return _bdd.BddFsm_get_strong_backward_image(arg1, states)

def BddFsm_print_info(arg1: 'BddFsm', file: 'FILE *') -> "void":
    """BddFsm_print_info(BddFsm arg1, FILE * file)"""
    return _bdd.BddFsm_print_info(arg1, file)

def BddFsm_print_reachable_states_info(arg1: 'BddFsm', print_states: 'boolean const', print_defines: 'boolean const', print_formula: 'boolean const', file: 'FILE *') -> "void":
    """BddFsm_print_reachable_states_info(BddFsm arg1, boolean const print_states, boolean const print_defines, boolean const print_formula, FILE * file)"""
    return _bdd.BddFsm_print_reachable_states_info(arg1, print_states, print_defines, print_formula, file)

def BddFsm_print_fair_states_info(arg1: 'BddFsm', print_states: 'boolean const', file: 'FILE *') -> "void":
    """BddFsm_print_fair_states_info(BddFsm arg1, boolean const print_states, FILE * file)"""
    return _bdd.BddFsm_print_fair_states_info(arg1, print_states, file)

def BddFsm_print_fair_transitions_info(arg1: 'BddFsm', print_states: 'boolean const', file: 'FILE *') -> "void":
    """BddFsm_print_fair_transitions_info(BddFsm arg1, boolean const print_states, FILE * file)"""
    return _bdd.BddFsm_print_fair_transitions_info(arg1, print_states, file)

def BddFsm_check_machine(arg1: 'BddFsm') -> "void":
    """BddFsm_check_machine(BddFsm arg1)"""
    return _bdd.BddFsm_check_machine(arg1)

def BddFsm_apply_synchronous_product_custom_varsets(arg1: 'BddFsm', other: 'BddFsm', state_vars_cube: 'bdd_ptr', input_vars_cube: 'bdd_ptr', next_vars_cube: 'bdd_ptr') -> "void":
    """BddFsm_apply_synchronous_product_custom_varsets(BddFsm arg1, BddFsm other, bdd_ptr state_vars_cube, bdd_ptr input_vars_cube, bdd_ptr next_vars_cube)"""
    return _bdd.BddFsm_apply_synchronous_product_custom_varsets(arg1, other, state_vars_cube, input_vars_cube, next_vars_cube)

def BddFsm_apply_synchronous_product(arg1: 'BddFsm', other: 'BddFsm') -> "void":
    """BddFsm_apply_synchronous_product(BddFsm arg1, BddFsm other)"""
    return _bdd.BddFsm_apply_synchronous_product(arg1, other)

def BddFsm_is_fair_states(arg1: 'BddFsm', states: 'BddStates') -> "boolean":
    """BddFsm_is_fair_states(BddFsm arg1, BddStates states) -> boolean"""
    return _bdd.BddFsm_is_fair_states(arg1, states)

def BddFsm_states_to_states_get_inputs(arg1: 'BddFsm', cur_states: 'BddStates', next_states: 'BddStates') -> "BddInputs":
    """BddFsm_states_to_states_get_inputs(BddFsm arg1, BddStates cur_states, BddStates next_states) -> BddInputs"""
    return _bdd.BddFsm_states_to_states_get_inputs(arg1, cur_states, next_states)

def BddFsm_get_states_inputs_constraints(arg1: 'BddFsm', dir: 'BddFsm_dir') -> "BddStatesInputs":
    """BddFsm_get_states_inputs_constraints(BddFsm arg1, BddFsm_dir dir) -> BddStatesInputs"""
    return _bdd.BddFsm_get_states_inputs_constraints(arg1, dir)

def BddFsm_states_inputs_to_states(arg1: 'BddFsm', si: 'BddStatesInputs') -> "BddStates":
    """BddFsm_states_inputs_to_states(BddFsm arg1, BddStatesInputs si) -> BddStates"""
    return _bdd.BddFsm_states_inputs_to_states(arg1, si)

def BddFsm_states_inputs_to_inputs(arg1: 'BddFsm', si: 'BddStatesInputs') -> "BddStates":
    """BddFsm_states_inputs_to_inputs(BddFsm arg1, BddStatesInputs si) -> BddStates"""
    return _bdd.BddFsm_states_inputs_to_inputs(arg1, si)

def BddFsm_get_cached_reachable_states(arg1: 'BddFsm', layers: 'BddStates **', size: 'int *') -> "boolean":
    """BddFsm_get_cached_reachable_states(BddFsm arg1, BddStates ** layers, int * size) -> boolean"""
    return _bdd.BddFsm_get_cached_reachable_states(arg1, layers, size)

def BddFsm_update_cached_reachable_states(arg1: 'BddFsm', layers: 'node_ptr', size: 'int', completed: 'boolean') -> "void":
    """BddFsm_update_cached_reachable_states(BddFsm arg1, node_ptr layers, int size, boolean completed)"""
    return _bdd.BddFsm_update_cached_reachable_states(arg1, layers, size, completed)

def BddFsm_set_reachable_states(arg1: 'BddFsm', reachable: 'BddStates') -> "void":
    """BddFsm_set_reachable_states(BddFsm arg1, BddStates reachable)"""
    return _bdd.BddFsm_set_reachable_states(arg1, reachable)

def BddFsm_has_cached_reachable_states(arg1: 'BddFsm') -> "boolean":
    """BddFsm_has_cached_reachable_states(BddFsm arg1) -> boolean"""
    return _bdd.BddFsm_has_cached_reachable_states(arg1)

def BddFsm_expand_cached_reachable_states(arg1: 'BddFsm', k: 'int', max_seconds: 'int') -> "boolean":
    """BddFsm_expand_cached_reachable_states(BddFsm arg1, int k, int max_seconds) -> boolean"""
    return _bdd.BddFsm_expand_cached_reachable_states(arg1, k, max_seconds)

def FairnessList_create(dd_manager: 'DdManager *') -> "FairnessList_ptr":
    """FairnessList_create(DdManager * dd_manager) -> FairnessList_ptr"""
    return _bdd.FairnessList_create(dd_manager)

def FairnessList_is_empty(arg1: 'FairnessList_ptr const') -> "boolean":
    """FairnessList_is_empty(FairnessList_ptr const arg1) -> boolean"""
    return _bdd.FairnessList_is_empty(arg1)

def FairnessList_begin(arg1: 'FairnessList_ptr const') -> "FairnessListIterator_ptr":
    """FairnessList_begin(FairnessList_ptr const arg1) -> FairnessListIterator_ptr"""
    return _bdd.FairnessList_begin(arg1)

def FairnessListIterator_is_end(arg1: 'FairnessListIterator_ptr const') -> "boolean":
    """FairnessListIterator_is_end(FairnessListIterator_ptr const arg1) -> boolean"""
    return _bdd.FairnessListIterator_is_end(arg1)

def FairnessListIterator_next(arg1: 'FairnessListIterator_ptr const') -> "FairnessListIterator_ptr":
    """FairnessListIterator_next(FairnessListIterator_ptr const arg1) -> FairnessListIterator_ptr"""
    return _bdd.FairnessListIterator_next(arg1)

def JusticeList_create(dd_manager: 'DdManager *') -> "JusticeList_ptr":
    """JusticeList_create(DdManager * dd_manager) -> JusticeList_ptr"""
    return _bdd.JusticeList_create(dd_manager)

def JusticeList_get_p(arg1: 'JusticeList_ptr const', iter: 'FairnessListIterator_ptr const') -> "BddStates":
    """JusticeList_get_p(JusticeList_ptr const arg1, FairnessListIterator_ptr const iter) -> BddStates"""
    return _bdd.JusticeList_get_p(arg1, iter)

def JusticeList_append_p(arg1: 'JusticeList_ptr', p: 'BddStates') -> "void":
    """JusticeList_append_p(JusticeList_ptr arg1, BddStates p)"""
    return _bdd.JusticeList_append_p(arg1, p)

def JusticeList_apply_synchronous_product(arg1: 'JusticeList_ptr', other: 'JusticeList_ptr const') -> "void":
    """JusticeList_apply_synchronous_product(JusticeList_ptr arg1, JusticeList_ptr const other)"""
    return _bdd.JusticeList_apply_synchronous_product(arg1, other)

def CompassionList_create(dd_manager: 'DdManager *') -> "CompassionList_ptr":
    """CompassionList_create(DdManager * dd_manager) -> CompassionList_ptr"""
    return _bdd.CompassionList_create(dd_manager)

def CompassionList_get_p(arg1: 'CompassionList_ptr const', iter: 'FairnessListIterator_ptr const') -> "BddStates":
    """CompassionList_get_p(CompassionList_ptr const arg1, FairnessListIterator_ptr const iter) -> BddStates"""
    return _bdd.CompassionList_get_p(arg1, iter)

def CompassionList_get_q(arg1: 'CompassionList_ptr const', iter: 'FairnessListIterator_ptr const') -> "BddStates":
    """CompassionList_get_q(CompassionList_ptr const arg1, FairnessListIterator_ptr const iter) -> BddStates"""
    return _bdd.CompassionList_get_q(arg1, iter)

def CompassionList_append_p_q(arg1: 'CompassionList_ptr', p: 'BddStates', q: 'BddStates') -> "void":
    """CompassionList_append_p_q(CompassionList_ptr arg1, BddStates p, BddStates q)"""
    return _bdd.CompassionList_append_p_q(arg1, p, q)

def CompassionList_apply_synchronous_product(arg1: 'CompassionList_ptr', other: 'CompassionList_ptr const') -> "void":
    """CompassionList_apply_synchronous_product(CompassionList_ptr arg1, CompassionList_ptr const other)"""
    return _bdd.CompassionList_apply_synchronous_product(arg1, other)
# This file is compatible with both classic and new-style classes.


