# Obtaining the lattice of equivalence relations

Is there an easy method to obtain the lattice of all equivalence relations $L_n$ of a set with $n$ elements in Sage?

Obtaining the lattice of equivalence relations

2

I do not know whether there is such a builtin construction in Sage, so here is a possible construction.

Let `S`

be a set, e.g.:

```
sage: S = {'a','b','c','d'}
```

First, we define the list of partitions over `S`

:

```
sage: list(SetPartitions(S))
[{{'a', 'b', 'c', 'd'}},
{{'a', 'b', 'c'}, {'d'}},
{{'a', 'b', 'd'}, {'c'}},
{{'a', 'b'}, {'c', 'd'}},
{{'a', 'b'}, {'c'}, {'d'}},
{{'a', 'c', 'd'}, {'b'}},
{{'a', 'c'}, {'b', 'd'}},
{{'a', 'c'}, {'b'}, {'d'}},
{{'a', 'd'}, {'b', 'c'}},
{{'a'}, {'b', 'c', 'd'}},
{{'a'}, {'b', 'c'}, {'d'}},
{{'a', 'd'}, {'b'}, {'c'}},
{{'a'}, {'b', 'd'}, {'c'}},
{{'a'}, {'b'}, {'c', 'd'}},
{{'a'}, {'b'}, {'c'}, {'d'}}]
```

Second, we define a function that decides whether a partition refines another one:

```
sage: refine = lambda p,q : all(any(set(i).issubset(set(j)) for j in q) for i in p)
sage: refine(((1,), (2, 3)), ((1,), (2,), (3,)))
False
sage: refine(((1,), (2,), (3,)), ((1,), (2, 3)))
True
```

With both the list of partitions and the refinment order, we can construct the poset:

```
sage: P = Poset((list(SetPartitions(S)), refine))
sage: P
Finite poset containing 15 elements
sage: P.is_lattice()
True
sage: P.plot()
```

Please start posting anonymously - your entry will be published after you log in or create a new account.

Asked: ** 2021-05-24 13:18:33 +0200 **

Seen: **39 times**

Last updated: **May 24**

How to restrict a quadratic form to a sublattice

question about pushout and pushout lattice

quadratic form over the integers with odd coefficients

Series expansion for theta function of even lattice

How to obtain all finite connected distributive lattices with SAGE

Error in finding the closest vector in a sublattice of Z^n

Sagemath: Closest_vector not working on mxn matrix when m!=n?

Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.

Like this