# A short notation to fix the assumption that all involved parameters are, say, positive

Often I make simplifications or other operations with assumptions. Sometimes the assumptions simply state that all parameters involved are positive.

I wonder, if there is a short notation for such a situation?

Just to give some code

Simplify[expr[a,b,c,d,e,g,f],{a>0,b>0,c>0d>0,e>0,f>0}]


 Simplify[expr[a,b,c,d,e,g,f],All>0]


This expression is, of course, a nonsense, but may be something in this direction.

Do you know something of this sort?

• Simplify[expr[Sequence @@ #], Thread[# > 0]] &@{a, b, c, d, e, g, f} ? – Dr. belisarius Dec 8 '14 at 15:54
• @belisarius Why do not you format this as the answer? – Alexei Boulbitch Dec 8 '14 at 16:14
• @belisarius That's not really saving key strokes... – Sjoerd C. de Vries Dec 8 '14 at 16:31
• @SjoerdC.deVries True, but you can pack it as in the last example in my answer below – Dr. belisarius Dec 8 '14 at 16:56

If you have version 10, you can also use AllTrue:

h[x__] :=Sign@Times[x]

Simplify[h[Sequence @@ #], AllTrue[#, Negative]] &@{a, b, c}
(* -1 *)

Simplify[h[Sequence @@ #], AllTrue[#, Negative]] &@{a, b, c, d}
(* 1 *)

• Thank you, AllTrue is what I looked for. Thank you for pointing it out. – Alexei Boulbitch Dec 9 '14 at 11:56
• @Alexei, thanks for the accept. – kglr Dec 9 '14 at 11:58

One way is:

Simplify[expr[Sequence @@ #], Thread[# > 0]] &@{a, b, c, d, e, g, f}

(* expr[a, b, c, d, e, g, f] .... Simplify has nothing to do in this simple case*)

g[x_, y_] := x + Abs@y
Simplify[g[Sequence @@ #], Thread[# > 0]] &@{a, b}

( a + b *)


packing it:

g[x_, y_] := x + Abs@y
simpWithAssump[symb_, vars_] := Simplify[symb[Sequence @@ #], Thread[# > 0]] &@vars
simpWithAssump[g, {a, b}]
(* a + b *)

• Thank you, it is, indeed a way. I should have thought about it. Thank you. – Alexei Boulbitch Dec 9 '14 at 11:55