#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.