Opened 6 years ago

Closed 6 years ago

#15473 closed defect (fixed)

Minor fixes to symmetric functions

Reported by: darij Owned by:
Priority: minor Milestone: sage-6.1
Component: combinatorics Keywords: sage-combinat, symmetric functions
Cc: tscrim, zabrocki, sage-combinat, SimonKing, nthiery Merged in:
Authors: Darij Grinberg Reviewers: Travis Scrimshaw
Report Upstream: N/A Work issues:
Branch: public/combinat/sf/fixes-15473 (Commits) Commit: 7f9be88c003631c910da2af552d4744883250764
Dependencies: Stopgaps:

Description (last modified by darij)

  • Some doc fixed (mostly ReST errors, mostly due to myself).
  • is_integral_domain added fwiw (maybe we can have the fraction field eventually).
  • Some deprecated stuff is now lazy-imported rather than imported.

One doctest is disabled waiting for :trac:10963 to be merged.

Attachments (1)

trac_15473-sym-dg.patch (11.0 KB) - added by darij 6 years ago.
without the offending doctest

Download all attachments as: .zip

Change History (17)

comment:1 Changed 6 years ago by darij

So, here's the file... but... it fails doctests for no reason whatsoever!

**********************************************************************
File "devel/sage-main/sage/combinat/sf/sfa.py", line 875, in sage.combinat.sf.sfa.SymmetricFunctionsBases.ParentMethods.corresponding_basis_over
Failed example:
    s.corresponding_basis_over(Integers(13))
Exception raised:
    Traceback (most recent call last):
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 479, in _run
        self.execute(example, compiled, test.globs)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/doctest/forker.py", line 838, in execute
        exec compiled in globs
      File "<doctest sage.combinat.sf.sfa.SymmetricFunctionsBases.ParentMethods.corresponding_basis_over[5]>", line 1, in <module>
        s.corresponding_basis_over(Integers(Integer(13)))
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sfa.py", line 937, in corresponding_basis_over
        return attrcall(self._basis)(SymmetricFunctions(R))
      File "classcall_metaclass.pyx", line 330, in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (sage/misc/classcall_metaclass.c:1224)
      File "cachefunc.pyx", line 1030, in sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:5675)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/unique_representation.py", line 1005, in __classcall__
        instance = typecall(cls, *args, **options)
      File "classcall_metaclass.pyx", line 518, in sage.misc.classcall_metaclass.typecall (sage/misc/classcall_metaclass.c:1586)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sf.py", line 764, in __init__
        Parent.__init__(self, category = GradedHopfAlgebras(R).WithRealizations())
      File "parent.pyx", line 368, in sage.structure.parent.Parent.__init__ (sage/structure/parent.c:4392)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sf.py", line 1225, in __init_extra__
        basis1 = getattr(self, basis1_name)()
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sf.py", line 812, in powersum
        return powersum.SymmetricFunctionAlgebra_power(self)
      File "classcall_metaclass.pyx", line 330, in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (sage/misc/classcall_metaclass.c:1224)
      File "cachefunc.pyx", line 1030, in sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:5675)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/unique_representation.py", line 1005, in __classcall__
        instance = typecall(cls, *args, **options)
      File "classcall_metaclass.pyx", line 518, in sage.misc.classcall_metaclass.typecall (sage/misc/classcall_metaclass.c:1586)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/powersum.py", line 41, in __init__
        classical.SymmetricFunctionAlgebra_classical.__init__(self, Sym, "powersum", 'p')
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sfa.py", line 1025, in __init__
        category = SymmetricFunctionsBases(Sym),
      File "classcall_metaclass.pyx", line 330, in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (sage/misc/classcall_metaclass.c:1224)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 464, in __classcall__
        return super(Category, cls).__classcall__(cls, *args, **options)
      File "cachefunc.pyx", line 1030, in sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:5675)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/unique_representation.py", line 1005, in __classcall__
        instance = typecall(cls, *args, **options)
      File "classcall_metaclass.pyx", line 518, in sage.misc.classcall_metaclass.typecall (sage/misc/classcall_metaclass.c:1586)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sfa.py", line 477, in __init__
        Category_realization_of_parent.__init__(self, base)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/realizations.py", line 147, in __init__
        Category_over_base.__init__(self, parent_with_realization)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category_types.py", line 204, in __init__
        Category.__init__(self, name)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 499, in __init__
        (self.__class__, self.subcategory_class, ),
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1277, in subcategory_class
        cache=False, picklable=False)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 2064, in _make_named_class
        cache=cache, **options)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1233, in _make_named_class
        tuple(getattr(cat,name) for cat in self._super_categories_for_classes),
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1059, in _super_categories_for_classes
        self._all_super_categories
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 885, in _all_super_categories
        for cat in self._super_categories] +
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1034, in _super_categories
        return sorted(Category._flatten_categories(self.super_categories()), key = category_sort_key, reverse=True)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sfa.py", line 514, in super_categories
        return [GradedHopfAlgebrasWithBasis(self.base().base_ring()),
      File "classcall_metaclass.pyx", line 330, in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (sage/misc/classcall_metaclass.c:1224)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 464, in __classcall__
        return super(Category, cls).__classcall__(cls, *args, **options)
      File "cachefunc.pyx", line 1030, in sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:5675)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/unique_representation.py", line 1005, in __classcall__
        instance = typecall(cls, *args, **options)
      File "classcall_metaclass.pyx", line 518, in sage.misc.classcall_metaclass.typecall (sage/misc/classcall_metaclass.c:1586)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category_types.py", line 327, in __init__
        Category_over_base.__init__(self, base, name)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category_types.py", line 204, in __init__
        Category.__init__(self, name)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 499, in __init__
        (self.__class__, self.subcategory_class, ),
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1277, in subcategory_class
        cache=False, picklable=False)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 2064, in _make_named_class
        cache=cache, **options)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1233, in _make_named_class
        tuple(getattr(cat,name) for cat in self._super_categories_for_classes),
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1059, in _super_categories_for_classes
        self._all_super_categories
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 885, in _all_super_categories
        for cat in self._super_categories] +
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1034, in _super_categories
        return sorted(Category._flatten_categories(self.super_categories()), key = category_sort_key, reverse=True)
      File "cachefunc.pyx", line 1775, in sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__ (sage/misc/cachefunc.c:9548)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/graded_hopf_algebras_with_basis.py", line 42, in super_categories
        return [GradedBialgebrasWithBasis(R), GradedHopfAlgebras(R), HopfAlgebrasWithBasis(R)]
      File "classcall_metaclass.pyx", line 330, in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (sage/misc/classcall_metaclass.c:1224)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 464, in __classcall__
        return super(Category, cls).__classcall__(cls, *args, **options)
      File "cachefunc.pyx", line 1030, in sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:5675)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/unique_representation.py", line 1005, in __classcall__
        instance = typecall(cls, *args, **options)
      File "classcall_metaclass.pyx", line 518, in sage.misc.classcall_metaclass.typecall (sage/misc/classcall_metaclass.c:1586)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category_types.py", line 327, in __init__
        Category_over_base.__init__(self, base, name)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category_types.py", line 204, in __init__
        Category.__init__(self, name)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 499, in __init__
        (self.__class__, self.subcategory_class, ),
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1277, in subcategory_class
        cache=False, picklable=False)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 2064, in _make_named_class
        cache=cache, **options)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1233, in _make_named_class
        tuple(getattr(cat,name) for cat in self._super_categories_for_classes),
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1059, in _super_categories_for_classes
        self._all_super_categories
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 885, in _all_super_categories
        for cat in self._super_categories] +
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1034, in _super_categories
        return sorted(Category._flatten_categories(self.super_categories()), key = category_sort_key, reverse=True)
      File "cachefunc.pyx", line 1775, in sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__ (sage/misc/cachefunc.c:9548)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/graded_bialgebras_with_basis.py", line 40, in super_categories
        return [GradedAlgebrasWithBasis(R), GradedCoalgebrasWithBasis(R), GradedBialgebras(R)]
      File "classcall_metaclass.pyx", line 330, in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (sage/misc/classcall_metaclass.c:1224)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 464, in __classcall__
        return super(Category, cls).__classcall__(cls, *args, **options)
      File "cachefunc.pyx", line 1030, in sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:5675)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/unique_representation.py", line 1005, in __classcall__
        instance = typecall(cls, *args, **options)
      File "classcall_metaclass.pyx", line 518, in sage.misc.classcall_metaclass.typecall (sage/misc/classcall_metaclass.c:1586)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category_types.py", line 327, in __init__
        Category_over_base.__init__(self, base, name)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category_types.py", line 204, in __init__
        Category.__init__(self, name)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 499, in __init__
        (self.__class__, self.subcategory_class, ),
      File "lazy_attribute.pyx", line 127, in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1277, in subcategory_class
        cache=False, picklable=False)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 2064, in _make_named_class
        cache=cache, **options)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.py", line 1235, in _make_named_class
        reduction = reduction, cache = cache)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/dynamic_class.py", line 316, in dynamic_class
        return dynamic_class_internal.f(name, bases, cls, reduction, doccls, prepend_cls_bases)
      File "/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/dynamic_class.py", line 411, in dynamic_class_internal
        return metaclass(name, bases, methods)
    TypeError: Cannot create a consistent method resolution
    order (MRO) for bases ModulesWithBasis.subcategory_class, Modules.subcategory_class, GradedModules.subcategory_class
**********************************************************************

This happens only because of the doctest

                sage: s = SymmetricFunctions(Zmod(14)).s()
                sage: s.is_integral_domain()
                False

before it. Both doctests work fine in isolation, but it seems that the Zmod(14) one corrupts the MRO for the Integers(13) one.

What the fuck???

Last edited 6 years ago by darij (previous) (diff)

comment:2 Changed 6 years ago by darij

  • Cc SimonKing added

comment:3 Changed 6 years ago by darij

  • Status changed from new to needs_info

comment:4 Changed 6 years ago by SimonKing

No idea about this failure. On #15303, I need to touch qsym.py for different reasons: Coercion maps use weak references to their domain (by #14711), and thus one should copy them when using outside of the coercion system.

comment:5 follow-up: Changed 6 years ago by darij

This is, sadly, not the patch where I'm touching QSym; I cc'ed you because it seems to be a category issue. Thanks for looking into it nevertheless!

comment:6 in reply to: ↑ 5 Changed 6 years ago by SimonKing

  • Cc nthiery added

Replying to darij:

This is, sadly, not the patch where I'm touching QSym; I cc'ed you because it seems to be a category issue.

I see!

Actually I thought that with Nicolas' modification of the C3 algorithm, an inconsistent method resolution order should never occur.

comment:7 Changed 6 years ago by darij

Nevermind my patch -- the bug is already triggered by

sage: SymmetricFunctions(Zmod(2)); SymmetricFunctions(Zmod(4))

If I use two primes instead of 2 and 4, then it works! It is probably a field/ring distinction. Maybe determining a category at runtime is bad for caching?

There should be a contest for the shortest string that breaks Sage...

Last edited 6 years ago by darij (previous) (diff)

comment:8 Changed 6 years ago by darij

But... not all is well in field-land either!

┌────────────────────────────────────────────────────────────────────┐
│ Sage Version 5.13.beta3, Release Date: 2013-11-14                  │
│ Type "notebook()" for the browser-based notebook interface.        │
│ Type "help()" for help.                                            │
└────────────────────────────────────────────────────────────────────┘
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Warning: this is a prerelease version, and it may be unstable.     ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
sage: SymmetricFunctions(Zmod(2)); SymmetricFunctions(Zmod(5)); SymmetricFunctions(Zmod(3))
Symmetric Functions over Ring of integers modulo 2
Symmetric Functions over Ring of integers modulo 5
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-1-55467dc7f5ca> in <module>()
----> 1 SymmetricFunctions(Zmod(Integer(2))); SymmetricFunctions(Zmod(Integer(5))); SymmetricFunctions(Zmod(Integer(3)))

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/classcall_metaclass.so in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (sage/misc/classcall_metaclass.c:1224)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/cachefunc.so in sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:5675)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/unique_representation.pyc in __classcall__(cls, *args, **options)
   1003             True
   1004         """
-> 1005         instance = typecall(cls, *args, **options)
   1006         assert isinstance( instance, cls )
   1007         if instance.__class__.__reduce__ == CachedRepresentation.__reduce__:

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/classcall_metaclass.so in sage.misc.classcall_metaclass.typecall (sage/misc/classcall_metaclass.c:1586)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sf.pyc in __init__(self, R)
    762         assert(R in Rings())
    763         self._base = R # Won't be needed when CategoryObject won't override anymore base_ring
--> 764         Parent.__init__(self, category = GradedHopfAlgebras(R).WithRealizations())
    765 
    766     def a_realization(self):

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/parent.so in sage.structure.parent.Parent.__init__ (sage/structure/parent.c:4392)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sf.pyc in __init_extra__(self)
   1223 
   1224         for (basis1_name, basis2_name) in conversion_functions.keys():
-> 1225             basis1 = getattr(self, basis1_name)()
   1226             basis2 = getattr(self, basis2_name)()
   1227             on_basis = SymmetricaConversionOnBasis(t = conversion_functions[basis1_name,basis2_name], domain = basis1, codomain = basis2)

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sf.pyc in powersum(self)
    810             Symmetric Functions over Rational Field in the powersum basis
    811         """
--> 812         return powersum.SymmetricFunctionAlgebra_power(self)
    813     p = powersum
    814     power = powersum # Todo: get rid of this one when it won't be needed anymore

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/classcall_metaclass.so in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (sage/misc/classcall_metaclass.c:1224)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/cachefunc.so in sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:5675)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/unique_representation.pyc in __classcall__(cls, *args, **options)
   1003             True
   1004         """
-> 1005         instance = typecall(cls, *args, **options)
   1006         assert isinstance( instance, cls )
   1007         if instance.__class__.__reduce__ == CachedRepresentation.__reduce__:

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/classcall_metaclass.so in sage.misc.classcall_metaclass.typecall (sage/misc/classcall_metaclass.c:1586)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/powersum.pyc in __init__(self, Sym)
     39             sage: TestSuite(p).run(elements = [p[1,1]+p[2], p[1]+2*p[1,1]])
     40         """
---> 41         classical.SymmetricFunctionAlgebra_classical.__init__(self, Sym, "powersum", 'p')
     42 
     43     def coproduct_on_generators(self, i):

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sfa.pyc in __init__(self, Sym, basis_name, prefix)
   1020         self._sym = Sym
   1021         CombinatorialFreeModule.__init__(self, Sym.base_ring(), sage.combinat.partition.Partitions(),
-> 1022                                          category = SymmetricFunctionsBases(Sym),
   1023                                          bracket = "", prefix = prefix)
   1024 

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/classcall_metaclass.so in sage.misc.classcall_metaclass.ClasscallMetaclass.__call__ (sage/misc/classcall_metaclass.c:1224)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.pyc in __classcall__(cls, *args, **options)
    462         if isinstance(cls, DynamicMetaclass):
    463             cls = cls.__base__
--> 464         return super(Category, cls).__classcall__(cls, *args, **options)
    465 
    466     def __init__(self, s=None):

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/cachefunc.so in sage.misc.cachefunc.WeakCachedFunction.__call__ (sage/misc/cachefunc.c:5675)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/structure/unique_representation.pyc in __classcall__(cls, *args, **options)
   1003             True
   1004         """
-> 1005         instance = typecall(cls, *args, **options)
   1006         assert isinstance( instance, cls )
   1007         if instance.__class__.__reduce__ == CachedRepresentation.__reduce__:

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/classcall_metaclass.so in sage.misc.classcall_metaclass.typecall (sage/misc/classcall_metaclass.c:1586)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/combinat/sf/sfa.pyc in __init__(self, base)
    475             True
    476         """
--> 477         Category_realization_of_parent.__init__(self, base)
    478 
    479     def _repr_(self):

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/realizations.pyc in __init__(self, parent_with_realization)
    145             sage: TestSuite(C).run()
    146         """
--> 147         Category_over_base.__init__(self, parent_with_realization)
    148         self.parent_with_realization = parent_with_realization
    149 

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category_types.pyc in __init__(self, base, name)
    202     def __init__(self, base, name=None):
    203         self.__base = base
--> 204         Category.__init__(self, name)
    205 
    206     def _make_named_class_key(self, name):

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.pyc in __init__(self, s)
    497                 raise TypeError, "Argument string must be a string."
    498         self.__class__ = dynamic_class("%s_with_category"%self.__class__.__name__,
--> 499                                        (self.__class__, self.subcategory_class, ),
    500                                        cache = False, reduction = None,
    501                                        doccls=self.__class__)

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/lazy_attribute.so in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.pyc in subcategory_class(self)
   1275         """
   1276         return self._make_named_class('subcategory_class', 'SubcategoryMethods',
-> 1277                                       cache=False, picklable=False)
   1278 
   1279     @lazy_attribute

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.pyc in _make_named_class(self, name, method_provider, cache, **options)
   2062             pass
   2063         result = Category._make_named_class(self, name, method_provider,
-> 2064                                             cache=cache, **options)
   2065         self._make_named_class_cache[key] = result
   2066         return result

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.pyc in _make_named_class(self, name, method_provider, cache, picklable)
   1231             reduction = None
   1232         return dynamic_class(class_name,
-> 1233                              tuple(getattr(cat,name) for cat in self._super_categories_for_classes),
   1234                              method_provider_cls, prepend_cls_bases = False, doccls = doccls,
   1235                              reduction = reduction, cache = cache)

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/lazy_attribute.so in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.pyc in _super_categories_for_classes(self)
   1057             [Category of rngs, Category of semirings]
   1058         """
-> 1059         self._all_super_categories
   1060         return self._super_categories_for_classes
   1061 

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/lazy_attribute.so in sage.misc.lazy_attribute._lazy_attribute.__get__ (sage/misc/lazy_attribute.c:1300)()

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/categories/category.pyc in _all_super_categories(self)
    885                                            for cat in self._super_categories] +
    886                                           [self._super_categories],
--> 887                                           category_sort_key)
    888         self._super_categories_for_classes = bases
    889         return [self] + result

/home/darij/sage-5.13.beta3/local/lib/python2.7/site-packages/sage/misc/c3_controlled.so in sage.misc.c3_controlled.C3_sorted_merge (sage/misc/c3_controlled.c:4377)()

KeyError: (6048, 95)

comment:9 Changed 6 years ago by darij

  • Summary changed from Minor fixes to symmetric functions to Minor fixes to symmetric functions, and, more importantly, C3 seems broken

Changed 6 years ago by darij

without the offending doctest

comment:10 Changed 6 years ago by darij

  • Description modified (diff)
  • Status changed from needs_info to needs_review
  • Summary changed from Minor fixes to symmetric functions, and, more importantly, C3 seems broken to Minor fixes to symmetric functions

comment:11 Changed 6 years ago by darij

All is well that ends well -- it turns out that both bugs are fixed by the hg version of #10963. I'll open a new ticket to not lose track of this issue, but this patch can be reviewed independently of it since I've disabled the doctest.

comment:12 Changed 6 years ago by tscrim

  • Branch set to public/combinat/sf/fixes-15473
  • Commit set to 4277d464648c841242d7c0a1b8478da9948e4e5a
  • Reviewers set to Travis Scrimshaw

Hey Darij,

I've converted this to a branch, removed the deprecated functions (15 months old) except the k-Schurs (they are more tricky), and formally deprecated SymmetricFunctionAlgebra. If you agree with my changes, then we can set this to positive review.

Best,
Travis

For the record, the doctests are re-enabled at #15475.


New commits:

4277d46Removed deprecated functions from HL, Jack, an Macdonald SF's.
df59b0aRemoved deprecated LLT functions and fixed kschur.py doctests.
ddea29aRemoved additional SymmetricFunctionAlgebras? in symmetrica.pxi.
35e6b34trac #15473: symmetric function fixes

comment:13 Changed 6 years ago by git

  • Commit changed from 4277d464648c841242d7c0a1b8478da9948e4e5a to 7f9be88c003631c910da2af552d4744883250764

Branch pushed to git repo; I updated commit sha1. New commits:

7f9be88reinstating a couple doctests, and removing a superficial Qqt definition (there were two in the same file)
ca45cadMerge branch 'public/combinat/sf/fixes-15473' of trac.sagemath.org:sage into 15473

comment:14 Changed 6 years ago by darij

Thanks for the review again! Good job clearing up the deprecations. If these couple new changes are fine, please set to positive_review.

comment:15 Changed 6 years ago by tscrim

  • Status changed from needs_review to positive_review

Looks good to me.

comment:16 Changed 6 years ago by vbraun

  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.