On Saturday, July 5, 2014 5:10:26 AM UTC-7, F. B. wrote:
>
>
>
> On Friday, July 4, 2014 4:12:25 PM UTC, Matthew wrote:
>>
>> Only semi-related, but here is a small pattern matching project.  It's 
>> strictly for non-associative operators and so not appropriate for SymPy. 
>>  It does function decently though 
>>
>> https://github.com/mrocklin/unification 
>>
>
> By the way, the associativity may be handled by flattening both the 
> expression and the pattern before starting the matching algorithm, and the 
> applying the conglomeration (that is, canonicalize both expression and 
> pattern).
>

probably not unless both of the expressions are constant.     how to order 
x+y  against a+b if there are
predicates associated with pattern variables...
 

>
> Mathematica has the attribute Flat to declare a node flat, so that the 
> flattening happens upon construction and all of the node's arguments are 
> considered associative wrt that node. The same for the attribute Orderless, 
> which considers all of the nodes to be commutative.
>
> I am wondering whether we should consider the associative property as 
> associated to the node/operator (as Mathematica does), or whether it should 
> be assigned to the tuple (operator, type of argument). I think that it's OK 
> to have a support for mixed commutativity of arguments (which Mathematica 
> does not natively support), but I think that associativity should be a 
> property of the node (it would become too garbled otherwise).
>
> Consider that the commutativity/non-commutativity can be further 
> generalized by associating a subgroup of the symmetric group to the node, 
> specifying more complex commutativity properties. SymPy already has support 
> for canonicalization of such cases, added by Pernici two years ago. 
> Unfortunately pattern matching would become even more garbled if this were 
> to be included.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sympy+unsubscr...@googlegroups.com.
To post to this group, send email to sympy@googlegroups.com.
Visit this group at http://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/68d8b161-b501-41a8-8db2-290d4f9dbf46%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to