#19405: Add lyapunov_rank() method for polyhedral cones
-------------------------------------+-------------------------------------
       Reporter:  mjo                |        Owner:
           Type:  enhancement        |       Status:  needs_review
       Priority:  major              |    Milestone:  sage-6.10
      Component:  geometry           |   Resolution:
       Keywords:                     |    Merged in:
        Authors:  Michael Orlitzky   |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/mjo/ticket/19405                 |  a193b815d8c6cfac86cbf3104f0eedbcb5d1f5bc
   Dependencies:  #19368             |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by mjo):

 Replying to [comment:9 novoselt]:
 > Well, to start with, we should realize that it is NOT a quotient! And
 that's one of those cases when all the fuss about distinct lattices M and
 N is handy. If our cone lives in N, then `orthogonal_sublattice` is in M
 and there is no way to quotient N by it.

 So that I don't make the same mistake again, I have a few disorganized
 questions:

 1. What exactly is the problem with the quotient? Is it that `M` and `N`
 are different, so we don't think of the thing in `M` as being a subthing
 of the thing in `N`? (This makes sense to me, I just didn't expect a
 "sublattice" method to give me something in another lattice.)

 2. I borrowed the quotient terminology from `strict_quotient` where we go
 through the back door of `linear_subspace()` -- why isn't that cheating
 too, since it drops down to vector spaces?

 3. Sage will let me take the lattice quotient of `N` and a sublattice `M`.
 Isn't it supposed to stop me? The docstring says it checks for a valid
 sublattice. Here's an example:

 {{{
 sage: K = Cone([(1,0,0),(0,1,0)])
 sage: K.lattice()
 3-d lattice N
 sage: K.orthogonal_sublattice()
 Sublattice <M(0, 0, 1)>
 sage: K.lattice().quotient(K.orthogonal_sublattice())
 2-d lattice, quotient of 3-d lattice N by Free module of degree 3 and rank
 1 over Integer Ring
 Echelon basis matrix:
 [0 0 1]
 }}}

 4. If the only problem is the `M`/`N` distinction, can I use
 `sublattice_complement()` instead of `orthogonal_complement()`? I think
 this gives me the correct subthing:

 {{{
 sage: K.sublattice_complement()
 Sublattice <N(0, 0, 0, 1), N(0, 0, 1, 0)>
 }}}

 Could I now consider `K.lattice().quotient(K.sublattice_complement())` a
 true quotient?

 I'd like to stick to things that make sense in your framework but I may
 need some hints. I'd hate to use an internal function because then we'd
 lose the doctests.

--
Ticket URL: <http://trac.sagemath.org/ticket/19405#comment:13>
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