tellsimp inside functuons



Hello,
I want to write a function, which amongst all does what is done below.
(C1) depends(x,t);

(D1) 				    [x(t)]
(C2) tellsimp('diff(x,t),dx/dt);

(D2) 			 [DERIVATIVERULE1, SIMPDERIV]
(C3) diff(x,t,2);

(D3) 				       0
(C4) diff(x,t);

				      dx
(D4) 				      --
				      dt
(C5) :lisp $d4

((MTIMES SIMP) ((MEXPT SIMP) $dt -1) $dx)

So, the function should look like
f(x):=( ... do this and that, then tellsimp to substitute diff(x,t) with 
dx/dt, then do more and more...)
My intention is to be able to do f(x1), f(x2), etc., and the have 
diff(x1,t,2)=0 , diff(x1,t)=dx1/dt, etc.

the problem is either f(x1) results in tellsimp('diff(x,t),...).

If I write a macro like buldq([x],'tellsimp('diff(x,t),dx/dt)), then 
tellsimp gets not evaluated :(

How do I define patterns with differentiation of a function's argument?

I have to say depends(x,t) to emulate mma's Dt call. Can I define 
simplification of 'diff(x,t) without saying depends(...) in the above 
framework?

--
Andrei Zorine