#15463: Implement crystal morphisms, subcrystals, and virtual crystals
-------------------------------------+-------------------------------------
       Reporter:  tscrim             |        Owner:  sage-combinat
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.8
      Component:  combinatorics      |   Resolution:
       Keywords:  crystals,          |    Merged in:
  morphisms, subcrystals             |    Reviewers:
        Authors:  Travis Scrimshaw   |  Work issues:
Report Upstream:  N/A                |       Commit:
         Branch:                     |  776f06692ca8f2cfe5da9ce6b477c4e7860a81e3
  public/combinat/crystals/crystal_morphisms|     Stopgaps:
   Dependencies:  #15462 #15882      |
  #16001 #18453 #18722               |
-------------------------------------+-------------------------------------

Comment (by aschilling):

 > For the induced crystals, `preimage` was the wrong word; it should have
 been `inverse`. I've updated the documentation accordingly.

 Well, Travis, it still does not work
 {{{
 sage: X = Words(2,4)
 sage: L = crystals.Letters(['A',1])
 sage: T = crystals.TensorProduct(*[L]*4)
 sage: Phi = lambda x : T(*[L(i) for i in x])
 sage: I = crystals.Induced(X,Phi)
 ---------------------------------------------------------------------------
 TypeError                                 Traceback (most recent call
 last)
 <ipython-input-21-64af8dd3a5ae> in <module>()
 ----> 1 I = crystals.Induced(X,Phi)

 /Applications/sage/src/sage/misc/classcall_metaclass.pyx in
 sage.misc.classcall_metaclass.ClasscallMetaclass.__call__
 
(/Applications/sage/src/build/cythonized/sage/misc/classcall_metaclass.c:1207)()
     324         """
     325         if cls.classcall is not None:
 --> 326             return cls.classcall(cls, *args, **kwds)
     327         else:
     328             # Fast version of type.__call__(cls, *args, **kwds)

 /Applications/sage/local/lib/python2.7/site-
 packages/sage/combinat/crystals/induced_structure.pyc in
 __classcall_private__(cls, X, phi, inverse, codomain, from_crystal)
     134                 codomain = phi(X.an_element()).parent()
     135
 --> 136         return super(InducedCrystal, cls).__classcall__(cls, X,
 phi, inverse, codomain)
     137
     138     def __init__(self, X, phi, inverse, codomain):

 /Applications/sage/src/sage/misc/cachefunc.pyx in
 sage.misc.cachefunc.WeakCachedFunction.__call__
 (/Applications/sage/src/build/cythonized/sage/misc/cachefunc.c:8111)()
    1308             except TypeError: # k is not hashable
    1309                 k = (_cache_key,_cache_key(k))
 -> 1310                 return self.cache[k]
    1311         except KeyError:
    1312             w = self.f(*args, **kwds)

 /Applications/sage/src/sage/misc/weak_dict.pyx in
 sage.misc.weak_dict.WeakValueDictionary.__getitem__
 (/Applications/sage/src/build/cythonized/sage/misc/weak_dict.c:3661)()
     876
     877         """
 --> 878         cdef PyObject* wr = PyDict_GetItemWithError(self, k)
     879         if wr == NULL:
     880             raise KeyError(k)

 /Applications/sage/src/sage/misc/weak_dict.pyx in
 sage.misc.weak_dict.PyDict_GetItemWithError
 (/Applications/sage/src/build/cythonized/sage/misc/weak_dict.c:1073)()
     147     cdef PyDictEntry* ep
     148     cdef PyDictObject* mp = <PyDictObject*><void *>op
 --> 149     ep = mp.ma_lookup(mp, <PyObject*><void*>key,
 PyObject_Hash(key))
     150     if ep:
     151         return ep.me_value

 TypeError: unhashable type: 'dict'
 }}}
 So please either remove this from the patch or fix it and show me how to
 do it in the above example.

 Thanks,

 Anne

--
Ticket URL: <http://trac.sagemath.org/ticket/15463#comment:49>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to