Pensieve Header: Some symbolic computations in U(I2D), with conventions following the Chicago ax+b handout of http://www.math.toronto.edu/~drorbn/Talks/Chicago-1009/

kcount=0;
rules = {
u[lft___, 1, rgt___] :> u[lft,rgt],
s_Symbol^n_Integer /; n>1 :> Sequence @@ Table[s, {n}],
u[lft___,y,x,rgt___] :> u[lft,x,y,rgt]-u[lft,y,rgt],
u[lft___,y^n_,x^m_,rgt___] /; !NumberQ[n]|| !NumberQ[m] :> (( (∑_(tk=0)^m)(((-n))^tk) Binomial[m,tk] u[lft, (x^(-tk+m)),(y^n), rgt]) /. tk -> k[++kcount]),
u[lft___,py,px,rgt___] :> u[lft,px,py,rgt],
u[lft___,py^n_,px^m_,rgt___] /; !NumberQ[n]|| !NumberQ[m] :> u[lft, px^m,py^n, rgt],
u[lft___,x,px,rgt___] :> u[lft,px,x,rgt],
u[lft___,x^n_,px^m_,rgt___] /; !NumberQ[n]|| !NumberQ[m] :> u[lft, px^m,x^n, rgt],
u[lft___,y,px,rgt___] :> u[lft,px,y,rgt],
u[lft___,y^n_,px^m_,rgt___] /; !NumberQ[n]|| !NumberQ[m] :> u[lft, px^m,y^n, rgt],
u[lft___,x,py,rgt___] :> u[lft,py,x,rgt] - u[lft,py,rgt],
u[lft___,x^n_,py^m_,rgt___] /; !NumberQ[n]|| !NumberQ[m] :> (((∑_(tk=0)^n)(((-m))^tk) Binomial[n,tk] u[lft,(py^m), (x^(-tk+n)), rgt]) /. tk -> k[++kcount]),
u[lft___,y,py,rgt___] :> u[lft,py,y,rgt] + u[lft,px,rgt],
u[lft___,y^n_,py^m_,rgt___] /; !NumberQ[n]|| !NumberQ[m] :> (((∑_(tk=0)^(Min[m,n]))Binomial[n,tk]Binomial[m,tk]tk!  u[lft,(px^tk),(py^(m-tk)), (y^(n-tk)), rgt]) /. tk -> k[++kcount])
};

u[y^5, x^3] //. rules // Expand

u[y^n,x^m]//. rules // Expand

(u[y^n,x^m]//. rules // Expand) /. {n->5, m->3}

u[x^4,py^6] //. rules // Expand

u[x^n,py^m] //. rules // Expand

(u[x^n,py^m] //. rules // Expand) /. {n->4, m->6}

u[y^4,py^6] //. rules // Expand

(u[y^n,py^m] //. rules // Expand) /. {n->4, m->6}

u[y^6,py^4] //. rules // Expand

(u[y^n,py^m] //. rules // Expand) /. {n->6, m->4}

u[y^5,x^6,py^3, px^4] //. rules// Expand

(u[y^n1,x^n2,px^n3] //. rules// Expand)

(u[y^n1,x^n2,y^n3] //. rules// Expand)

(u[x^n2,py^n3] //. rules// Expand)

(u[y^n1,x^n2,py^3] /. rules// Expand)

(∑_(k[12]=0)^n2)(((-n1))^(k[12])) Binomial[n2,k[12]] u[(x^(n2-k[12])),(y^n1),(py^3)]/. rules

u[(x^(n2-k[12])),(y^n1),(py^3)]/. rules

(∑_(k[12]=0)^n2)(((-n1))^(k[12])) Binomial[n2,k[12]]/. rules

(∑_(k[12]=0)^n2)(((-n1))^(k[12])) Binomial[n2,k[12]]

(∑_(k[12]=0)^n2)(((-n1))^(k[12])) Bin[n2,k[12]] u[(x^(n2-k[12])),(y^n1),(py^3)]/. rules

kcount

(u[y^n1,x^n2,py^n3] //. rules// Expand)

(u[y^n1,x^n2,py^n3, px^n4] //. rules// Expand)