Re: [sage-devel] discovering coercions (related to groups and cartesian products)

2015-01-02 Thread David Roe
Take a look at sage/categories/pushout.py. You will need to define construction() methods on both A and B, which return pairs (F_A, X_A) and (F_B, X_B), where the F are ConstructionFunctors with F_A(X_A) = A and F_B(X_B) = B. You then need to tell Sage how to merge F_A and F_B. See pushout.py fo

[sage-devel] Re: ask.sagemath.org and openid2

2015-01-02 Thread Niles Johnson
> >> > 2. ask.sagemath.org is running on Google Compute Engine using free >> credits they gave me. These were going to expire in Nov 2014, but >> Google kindly extended the credits through March (though they could >> run out before then). We should continue to think about where to host >>

[sage-devel] discovering coercions (related to groups and cartesian products)

2015-01-02 Thread Daniel Krenn
I've tried to reduce my problem to the following set-up and question: Say we have algebraic structures A and B (think of groups) constructed like this: A = CreateGroup('alpha') B = CreateGroup('beta') Elements are then a = A.an_element() b = B.an_element() Now I want to perform a binar

Re: [sage-devel] should latex() on a LatexExpr raise an exception?

2015-01-02 Thread Dan Drake
On Fri, 02 Jan 2015 at 10:38AM +0100, Jeroen Demeyer wrote: > That's already the case (except that it returns an equal but not the > same object): > > sage: P = latex(ZZ) > sage: Q = latex(P) > sage: P == Q > True > sage: P is Q > False I was going to reply with "no, that doesn't happen at all" b

Re: [sage-devel] Re: Rings for free modules

2015-01-02 Thread Jeroen Demeyer
On 2015-01-02 17:12, Nils Bruin wrote: For someone considering purely ZZ-modules it is perhaps a surprise that A*c did not produce a submodule of A, but then the scalar c used wasn't in ZZ Exactly. I consider this a bug though: sage: ((ZZ^2)*QQ(1)).basis()[0][0].parent() Integer Ring sage: ((ZZ

[sage-devel] Re: Rings for free modules

2015-01-02 Thread Nils Bruin
On Friday, January 2, 2015 2:36:47 AM UTC-8, Jeroen Demeyer wrote: > > Currently in Sage one can do the following: > > sage: M = (ZZ^2)*(1/2) > ... > One sees that really two rings are involved: > (1) the ring ZZ which is the ring of scalars, the ring R such that we > have an R-module. > (2) t

[sage-devel] Re: ask.sagemath.org and openid2

2015-01-02 Thread kcrisman
> > 1. I just logged in to ask.sagemath.org (using Google open auth) and > got the attached message, that Google is getting rid of this service > in four months?! What's the implication for ask.sagemath.org > accounts/users? > > And for other OpenID stuff in Sage, I've wondered about this for

[sage-devel] ask.sagemath.org and openid2

2015-01-02 Thread William Stein
Hi, 1. I just logged in to ask.sagemath.org (using Google open auth) and got the attached message, that Google is getting rid of this service in four months?! What's the implication for ask.sagemath.org accounts/users? 2. ask.sagemath.org is running on Google Compute Engine using free credits th

[sage-devel] Rings for free modules

2015-01-02 Thread Jeroen Demeyer
Currently in Sage one can do the following: sage: M = (ZZ^2)*(1/2) sage: M Free module of degree 2 and rank 2 over Integer Ring Echelon basis matrix: [1/2 0] [ 0 1/2] sage: v = M.basis()[0] sage: v.base_ring() Integer Ring sage: v[0].parent() Rational Field I assume that this behaviour is int

Re: [sage-devel] should latex() on a LatexExpr raise an exception?

2015-01-02 Thread Jeroen Demeyer
On 2015-01-01 16:54, Dan Drake wrote: Perhaps a simpler alternative would be that latex() on a LatexExpr doesn't do anything -- it's just the identity. That's already the case (except that it returns an equal but not the same object): sage: P = latex(ZZ) sage: Q = latex(P) sage: P == Q True sa