Ask Your Question

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

Comments

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.

( 2020-01-08 13:53:33 +0200 )edit

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

( 2020-01-09 21:25:05 +0200 )edit

1 Answer

Sort by » oldest newest most voted

Here is a first attempt to answer your questions.

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[0] = 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:
....:                 new_subspaces.add(new_ss)
....:     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

Your Answer

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

Add Answer

Stats

Asked: 2020-01-05 20:01:53 +0200

Seen: 408 times

Last updated: Jan 08 '20