def key_str(assume, owner, lid):
    """Return identifier for multi-edge selector.

    The `owner` controls this variable.
    It determines the control flow of an assertion or assumption
    depending on `assume`.
    The `lid` is an integer index of processes in
    a synchronous product.
    """
    assert assume in ('env', 'sys'), assume
    assert owner in ('env', 'sys'), owner
    assert lid >= 0, lid
    return '{assume}{owner}key{lid}'.format(
        assume=assume, owner=owner, lid=lid)