#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: | 3e866366015b114c04b55ca0b5718420ae3ce234
public/combinat/crystals/crystal_morphisms| Stopgaps:
Dependencies: #15462 #15882 |
#16001 #18453 #18722 |
-------------------------------------+-------------------------------------
Comment (by tscrim):
Replying to [comment:52 aschilling]:
> Replying to [comment:51 tscrim]:
> > Hmmm....that's an interesting way for an unhashable to be obtained and
shows what I get for only testing by explicitly constructing the inverse
map and passing that in. I've moved the logic for determining an inverse
map when none is specified into the appropriate classes, so it should work
now.
>
> Ok, it works better now. But why do you let the user input the inverse
function? Is it checked that the function is the inverse and that the
result is a crystal? The following gives the wrong results (I agree that
Phi_inv is not the inverse of Phi, but this could happen by accident):
> {{{
> sage: X = Words(2,3)
> sage: L = crystals.Letters(['A',1])
> sage: T = crystals.TensorProduct(*[L]*3)
> sage: Phi = lambda x : Word([i.value for i in x])
> sage: Phi_inv = lambda x : T(*[L(i) for i in x.reversal()])
> sage: I = crystals.Induced(T,Phi,Phi_inv,from_crystal=True)
> sage: view(I)
> }}}
I made it this way because I wanted it to work with infinite sets. For
finite sets, I could add an explicit check that it is the inverse function
(with an optional check argument).
> Also, I was able to input the wrong codomain and the code did not
complain. Why should this be inputted?
I guess I really don't need this since I'm operating under the assumption
that the crystal is non-empty. Will change.
Note for self, add examples for virtualization arguments to subcrystal.
--
Ticket URL: <http://trac.sagemath.org/ticket/15463#comment:53>
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.