On Monday, 7 January 2013 14:04:36 UTC-7, Benjamin Jones wrote:
>
> On Mon, Jan 7, 2013 at 10:53 AM, Keshav Kini 
> <kesha...@gmail.com<javascript:>> 
> wrote: 
> > Benjamin Jones <benjami...@gmail.com <javascript:>> writes: 
> > 
> >> On Mon, Dec 17, 2012 at 9:32 PM, P Purkayastha 
> >> <ppu...@gmail.com<javascript:>> 
>
> >> wrote: 
> >> 
> >>     On 12/18/2012 10:10 AM, Benjamin Jones wrote: 
> >> 
> >>         if y > 0 is true, 
> >>         is x*(y > 0) true or false? 
> >> 
> >> 
> >>     Why is this kind of operation (+,-,*, etc) distributive over 
> >>     comparison operators? Is this distributive operation well defined 
> >>     in general, maybe according to some theory? 
> >> 
> >> 
> >> 
> >> If you think about the comparison operators as type constructors (for 
> >> the SR type), it's useful for them to be functors. In other words, 
> >> it's useful to be able to map over them, e.g. map the function that 
> >> is multiplication by a constant element of SR over a comparison: 
> >> 
> >> sage: y = var('y') 
> >> sage: x * (y > 0) 
> >> x*y > 0 
> >> 
> >> Just like applying the operator (x*_) over a list [ y, 0 ]. 
> > 
> > Couldn't you apply the same logic to "*" as well? Now (a * b) * c 
> > becomes (a * c) * (b * c), which is obviously not what we want. 
> > 
> > Certainly it's nice to be able to map over things. I would think that 
> > there should be some actual syntax for this, though, rather than just 
> > implicitly distributing all operations over relational operators. As far 
> > as I can see, the only thing that's special here about relational 
> > operators as opposed to arithmetic operators is that we don't currently 
> > have a coherent way of resolving the application of other operators to 
> > relational expressions. I don't think that should mean that by default 
> > we just distribute. 
> > 
> > See also http://trac.sagemath.org/sage_trac/ticket/7660#comment:8 . 
> > 
> > -Keshav 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups "sage-devel" group. 
> > To post to this group, send email to 
> > sage-...@googlegroups.com<javascript:>. 
>
> > To unsubscribe from this group, send email to 
> sage-devel+...@googlegroups.com <javascript:>. 
> > Visit this group at http://groups.google.com/group/sage-devel?hl=en. 
> > 
> > 
>
> I agree that an explicit syntax for mapping over relations would be 
> better than having it done implicitly. But, then again, it would be 
> nice to  implicitly map over equality, there would be no confusion 
> there. 
>
> So, what should x*(y > 0) do, raise a NotImplementedError? And x*(y == 
> 0)? I guess we just special case inequalities. 
>
> -- 
> Benjamin Jones 
>
 
Or rather equalities may have special case behaviour while others throw an 
error?

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To post to this group, send email to sage-devel@googlegroups.com.
To unsubscribe from this group, send email to 
sage-devel+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.


Reply via email to