1 | initial version |
Say U is a list of things and F is a list of forbidden things.
We want to check that none of the forbidden things is in U.
One way to perform such a check is as follows:
sage: all(a not in U for a in F)
2 | No.2 Revision |
Say U is a list of things permutations and F is a list of forbidden things.patterns.
We want to check that none of the all permutations in U avoid all forbidden things is in U.patterns.
One way to perform such a check is as follows:
sage: all(a not in U for a in F)
U = [[2, 3, 1, 4, 5], [2, 4, 1, 3, 5], [2, 5, 1, 3, 4], [2, 1, 3, 4, 5],
....: [1, 3, 4, 2, 5], [1, 3, 5, 2, 4], [1, 3, 2, 4, 5], [3, 1, 4, 2, 5],
....: [3, 4, 1, 2, 5], [3, 5, 1, 2, 4], [3, 1, 2, 4, 5], [1, 2, 4, 5, 3],
....: [1, 2, 4, 3, 5], [1, 4, 2, 5, 3], [1, 4, 5, 2, 3], [1, 4, 2, 3, 5],
....: [4, 1, 2, 5, 3], [4, 1, 5, 2, 3], [4, 5, 1, 2, 3], [4, 1, 2, 3, 5],
....: [1, 2, 3, 5, 4], [1, 2, 5, 3, 4], [1, 5, 2, 3, 4], [5, 1, 2, 3, 4],
....: [1, 2, 3, 4, 5]]
sage: F = [[3, 1, 2, 4], [4, 1, 2, 3]]
sage: U = [Permutation(p) for p in U]
sage: F = [Permutation(p) for p in F]
sage: all(u.avoids(f) for f in F for u in U)