kill(all);

appendix : change propêrty of sum 'linear',matchdeclare , 'version 1.0'
peter.vlasschaert@gmail.com, 20/11/2018

properties(sum);

gives : property extra :  example : sum
-----------------------------------------------------------

declare(sum,linear);

properties(sum);

remove ;property    : example : sum
------------------------------------------------------

remove(sum,linear);

properties(sum);

p1:sum(a*f(x[ii])+b*f(y[ii]),ii,1,m);

p1a:niceindices(p1);

declare(sum,linear);

p2:sum(a*f(x[ii])+b*f(y[ii]),ii,1,m);

p2a:niceindices(p2);

check property (p) = > (yes,no), 
==========================
=>  predicate =p

features;

featurep(sum,linear);

p3:a2*x^2+a1*x+a0;

matchdeclare : ?
==============
-----------------------------------------------------------------------------------------------------------
syntax : matchdeclare(pattern1,predicate1,pattern2,predicate2,............) 
                 or
syntax : matchdeclare([pattern1,pattern2,..........],predicate) 
-----------------------------------------------------------------------------------------------------------

matchdeclare(a2,freeof(x),a1,freeof(x),a0,freeof(x));
defmatch(ff,p3)$

ff(a*b*c+d*g*x^2+b*u*x);

ff(s*g*x^5);

ff(s*t*y^2);

defmatch(ff1,a1*x+a2*x^2);

ff1(a3*y^2);

load(functs);