# How to set products of small variables to zero

Say I have an expression which contains different product combination of very small variables, say, δA, δB, δC.

I want to set all the products and all the variables with exponents greater than 1 to 0; e.g.,

δA δB -> 0, δA δC -> 0, δA^2 -> 0, ... etc


I can do so by using replace command:

expression /. {δA δC -> 0, ...}


But that is definitely not the most efficient way. Can you give me any idea on how to make it happen without listing all the possibilities?

• As ever, it's easiest to post a response when given a specific example, in proper code. Absent that, I'd suggest something like Normal[Series[expression/.Thread[vars->t*vars],{t,0,1}]]/.t->1. – Daniel Lichtblau Oct 6 '14 at 15:00

With[{vars = (δA | δB | δC)},

• Thanks for reply! It seems to work for higher order terms but simply With[{vars = (δA | δB | δC)}, δA*δB/. {x: vars * y: vars -> 0, vars^n_ /; n>1 -> 0}] returns δA*δB – yuriyi Oct 6 '14 at 13:26
• @YuriyIvanov I think parentheses are necessary here (x : vars) ( y : vars) – ybeltukov Oct 6 '14 at 13:29
• @YuriyIvanov: Strange; for me (on Mathematica 8.0.0.0) the very expression you wrote (copy/pasted directly from your comment) evaluates to 0. – celtschk Oct 8 '14 at 9:44