def MeetSemilattice(data, *args, **options): r""" Construct a meet semi-lattice from various forms of input data. INPUT: - ``data``, ``*args``, ``**options`` -- data and options that will be passed down to :func:`Poset` to construct a poset that is also a meet semilattice. .. seealso:: :func:`Poset`, :func:`JoinSemilattice`, :func:`LatticePoset` EXAMPLES: Using data that defines a poset:: sage: MeetSemilattice([[1,2],[3],[3]]) Finite meet-semilattice containing 4 elements sage: MeetSemilattice([[1,2],[3],[3]], cover_relations = True) Finite meet-semilattice containing 4 elements Using a previously constructed poset:: sage: P = Poset([[1,2],[3],[3]]) sage: L = MeetSemilattice(P); L Finite meet-semilattice containing 4 elements sage: type(L) <class 'sage.combinat.posets.lattices.FiniteMeetSemilattice_with_category'> If the data is not a lattice, then an error is raised:: sage: elms = [1,2,3,4,5,6,7] sage: rels = [[1,2],[3,4],[4,5],[2,5]] sage: MeetSemilattice((elms, rels)) Traceback (most recent call last): ... ValueError: Not a meet semilattice. """ if isinstance( data, FiniteMeetSemilattice) and len(args) == 0 and len(options) == 0: return data P = Poset(data, *args, **options) if not P.is_meet_semilattice(): raise ValueError, "Not a meet semilattice." return FiniteMeetSemilattice(P)
def MeetSemilattice(data, *args, **options): r""" Construct a meet semi-lattice from various forms of input data. INPUT: - ``data``, ``*args``, ``**options`` -- data and options that will be passed down to :func:`Poset` to construct a poset that is also a meet semilattice. .. seealso:: :func:`Poset`, :func:`JoinSemilattice`, :func:`LatticePoset` EXAMPLES: Using data that defines a poset:: sage: MeetSemilattice([[1,2],[3],[3]]) Finite meet-semilattice containing 4 elements sage: MeetSemilattice([[1,2],[3],[3]], cover_relations = True) Finite meet-semilattice containing 4 elements Using a previously constructed poset:: sage: P = Poset([[1,2],[3],[3]]) sage: L = MeetSemilattice(P); L Finite meet-semilattice containing 4 elements sage: type(L) <class 'sage.combinat.posets.lattices.FiniteMeetSemilattice_with_category'> If the data is not a lattice, then an error is raised:: sage: elms = [1,2,3,4,5,6,7] sage: rels = [[1,2],[3,4],[4,5],[2,5]] sage: MeetSemilattice((elms, rels)) Traceback (most recent call last): ... ValueError: Not a meet semilattice. """ if isinstance(data,FiniteMeetSemilattice) and len(args) == 0 and len(options) == 0: return data P = Poset(data, *args, **options) if not P.is_meet_semilattice(): raise ValueError, "Not a meet semilattice." return FiniteMeetSemilattice(P)