Example #1
0
def get(matches, used, Ps, get_P, Pa, ua):
    others = list(set(used) - set(matches))
    extra = PosetProduct(tuple(map(get_P, others)))
    print('extra for Pa: %s' % extra)
    Pa_comp = PosetProduct(Pa.subs + extra.subs)
    print('Pa_comp: %s' % Pa_comp)
    extra_minimals = extra.get_minimal_elements()
    m_matches = matches + others
    s = set()
    R = set()
    for m1, m2 in itertools.product(ua.minimals, extra_minimals):
        m = m1 + m2
        s.add(m)
        r = [None] * len(used)
        for i, a in enumerate(used):
            S1 = Pa_comp.subs[m_matches.index(a)]
            s1 = m[m_matches.index(a)]
            S2 = get_P(a)
            r[i] = express_value_in_isomorphic_space(S1, s1, S2)
        r = tuple(r)
        R.add(r)
    Pa_comp_lb = Pa_comp.Us(s)
    print('Pa_comp_lb: %s' % Pa_comp_lb)
    Ps_a = Ps.Us(R)
    return Ps_a