def invariants_constraint(fsm, k):
    """
    Computes the constraint to be added to the model when one wants to 
    enforce the invariants declared in the SMV text.
    
    .. note:: 
        This constraint has no counterpart in BmcModel. However, the same
        result can be achieved by computing the conjunction of 
        BmcModel.invar[time] for all the times in the range [0; k]. 
    
    :param fsm: the fsm whose transition relation must be unrolled
    :param k: the maximum (horizon/bound) time of the problem
    :return: the invariants constraint enforced on the paths.
    """
    return fsm.encoding.and_interval(fsm.invariants, 0, k)
