# Lattices via sage I have three questions on lattices:

-Is there a way to obtain the minimal number of generators of a lattices with sage?

-Is there a way to obtain the lattice of all subspaces of a vector space over a finite field with q elements in sage?

-Is there a quick way to obtain all distributive lattices on n points in sage (that is, without filtering them from the set of all posets on n points).

edit retag close merge delete

Could you clarify which lattice you mean? A lattice can be a subgroup of the additive group R^n which is isomorphic to Z^n or a poset with a join and meet operations.

Sort by » oldest newest most voted

1) The comment should be addressed in order to give an instructive answer.

2) Assuming you want to consider only _linear_ subspace, the following code does the thing:

sage: dim = 2
sage: FF = FiniteField(3)
sage: VS = VectorSpace(FF,2)
sage: SS = {}
sage: SS = set([VS.subspace([])])
sage: for dim in range(1,dim+1):
....:     new_subspaces = set()
....:     for v in VS:
....:         for ss in SS[dim-1]:
....:             new_ss = ss + VS.subspace([v])
....:             if new_ss.dimension() == dim:
....:     SS[dim] = new_subspaces
....:
sage: ground_set = reduce(lambda x,y:x.union(y),SS.values())
sage: the_lattice = LatticePoset((ground_set,lambda x,y: x.is_subspace(y)))

more

Thanks, yes it is about lattices in the sense of posets.