def METHOD_NAME():
    n = NT()
    s = ST()
    a = AT()
    p = PT()
    log_trans = LT()
    c1 = CT([s, a, p])
    assert c1
    c2 = CT([s, a, s])
    assert isinstance(n * n, NT)
    assert isinstance(n * s, ST)
    assert isinstance(s * s, ST)
    assert isinstance(a * s, AT)
    assert isinstance(a * a, AT)
    assert isinstance(s * a, AT)
    assert isinstance(n * p, PT)
    assert isinstance(s * p, CT)
    assert isinstance(a * p, CT)
    assert isinstance(p * a, CT)
    assert isinstance(p * s, CT)
    assert_chain_types(p * a, [PT, AT])
    assert_chain_types(p * s, [PT, ST])
    assert_chain_types(s * p, [ST, PT])
    assert_chain_types(s * p * a, [ST, PT, AT])
    assert_chain_types(s * a * p, [AT, PT])
    assert_chain_types(p * s * a, [PT, ST, AT])
    assert_chain_types(s * p * s, [ST, PT, ST])
    assert_chain_types(s * a * p * s * a, [AT, PT, ST, AT])
    assert_chain_types(c2 * a, [ST, AT, ST, AT])
    assert_chain_types(p * log_trans * s, [PT, LT, ST])