This works (assuming matchdeclare([u,m],true). defrule(jsc, 'jacobi_sc(u,m), jacobi_sn(u,m)/jacobi_cn(u,m)); note the ' which converts $jacobi_sc to %jacobi_sc internally. I do not know if this $ vs % is intentional here, but I think it is pretty destructive in this case. RJF