Within Mathematica, DiracDelta
makes only sense within Integrate
(or integral transforms such as FourierTransform
. And a product of DiracDelta
makes only sense in a multidimensional setting:
Assuming[x >= 0 && y > 1,
Integrate[DiracDelta[x] DiracDelta[x - y] f[x], {x, -2, 2}]
]
returns

If one uses two-dimensional integration and incorporates the assumptions into the integration, one obtains the desired results:
Integrate[ DiracDelta[x] DiracDelta[x - y] f[x, y], {x, 0, ∞}, {y, 1, ∞}]
Integrate[ DiracDelta[x] DiracDelta[x + y] f[x, y], {x, 0, ∞}, {y, 1, ∞}]
0
0
By the way, Mathematica seem to interpret functions in the integrant as functions that are compactly support in the interior of the integration domain:
Integrate[DiracDelta[x] DiracDelta[x - y] f[x, y], {x, 0, ∞}, {y, 0, ∞}]
Integrate[DiracDelta[x] DiracDelta[x - y] f[x, y], {x, -ϵ, ∞}, {y, -ϵ, ∞},
Assumptions -> ϵ > 0]
This can lead to wrong results when integration function that do not vanish on the domain of integration:
Integrate[DiracDelta[x] DiracDelta[x - y] Cos[x + y], {x, 0, ∞}, {y, 0, ∞}]
Integrate[DiracDelta[x] DiracDelta[x - y] Cos[x + y], {x, -ϵ, ∞}, {y, -ϵ, ∞},
Assumptions -> ϵ > 0]
0
1
Here, I would have expected that both evaluate to 1
.