def composition_series_poset(self, side = 'right'): """ Experimental, and apparently broken ... EXAMPLES:: sage: S = Monoids().Aperiodic().Finite().example(5); S The finite H-trivial monoid of order preserving maps on {1, 2, 3, 4, 5} sage: P = S.composition_series_poset(side = 'right') sage: list(P) [4, 3, 2, 1, 0] sage: P.cover_relations() [] sage: P = S.composition_series_poset(side = 'left') sage: list(P) [4, 3, 2, 1, 0] sage: P.cover_relations() """ from sage.combinat.posets.posets import Poset Js = self.regular_j_classes_keys() principal_order_filters = {} for J in Js: R = self.lr_regular_class_module(J, side=side) principal_order_filters[J] = R.composition_series() import time print "%s %s: %s %s %s"%(time.strftime("%H:%M:%S"), J, self.simple_module_dimension(J), R.dimension(), principal_order_filters[J]) P = Poset( ( Js, lambda J1, J2: J2 in principal_order_filters[J1] ), facade = True ) from sage.sets.set import Set assert all( Set( P.principal_order_filter(J) ) == principal_order_filters[J] for J in Js ) return P
def composition_series_poset(self, side='right'): """ Experimental, and apparently broken ... EXAMPLES:: sage: S = Monoids().Aperiodic().Finite().example(5); S The finite H-trivial monoid of order preserving maps on {1, 2, 3, 4, 5} sage: P = S.composition_series_poset(side = 'right') sage: list(P) [4, 3, 2, 1, 0] sage: P.cover_relations() [] sage: P = S.composition_series_poset(side = 'left') sage: list(P) [4, 3, 2, 1, 0] sage: P.cover_relations() """ from sage.combinat.posets.posets import Poset Js = self.regular_j_classes_keys() principal_order_filters = {} for J in Js: R = self.lr_regular_class_module(J, side=side) principal_order_filters[J] = R.composition_series() import time print("%s %s: %s %s %s" % (time.strftime("%H:%M:%S"), J, self.simple_module_dimension(J), R.dimension(), principal_order_filters[J])) P = Poset((Js, lambda J1, J2: J2 in principal_order_filters[J1]), facade=True) from sage.sets.set import Set assert all( Set(P.principal_order_filter(J)) == principal_order_filters[J] for J in Js) return P