Re: If[_, x_, x_] := x ?
- To: mathgroup at smc.vnet.net
- Subject: [mg43794] Re: [mg43791] If[_, x_, x_] := x ?
- From: Andrzej Kozlowski <akoz at mimuw.edu.pl>
- Date: Mon, 6 Oct 2003 02:07:48 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
On Saturday, October 4, 2003, at 03:05 PM, Selwyn Hollis wrote:
> Hi all,
>
> I just noticed the following (new in v. 5.0):
>
> Sum[Cos[i*Pi/n], {i, 1, n}]
>
> -1 + If[1/(2*n) \[Element] Integers, 0, 0]
>
> One would hope that this would make the desired simplification:
>
> Simplify[Sum[Cos[i*Pi/n], {i, 1, n}], n $B":(B Integers]
>
> -1 + If[1/(2*n) \[Element] Integers, 0, 0]
>
> But apparently one must resort to this:
>
> Simplify[Sum[Cos[i*(Pi/n)], {i, 1, n}], Not[1/(2*n) $B":(B Integers]]
>
> -1
>
> So, two questions:
>
> (1) Is there a more elegant way to use Simplify to remedy something
> like this?
>
> (2) Is there any reason why you wouldn't want to have If[_, x_, x_] :=
> x in general?
>
>
> -----
> Selwyn Hollis
> http://www.math.armstrong.edu/faculty/hollis
>
>
>
1. I am not sure you will call this "more elegant" but:
Simplify[ComplexExpand[Re[Sum[E^(I*((i*Pi)/n)),
{i, 1, n}]]], n $B":(B Integers]
-1
2. In a way, yes. Note that:
If[a,x,y,z]
z
This is logical, since Mathematica follows here "three-valued"" logic,
in other words a can be True, False or "something else". Of course, it
is not entirely definite what the "something else" ought to mean. One
usually thinks of it as "unknown" but it could also be something that
has no truth value at all. This is mathematically quite reasonable, for
example a could stand for an undecidable statement. Logically it would
not be appropriate for If[a,x,x] to return x in such a case.
(In practice of course it doesn't really matter either way).
Andrzej Kozlowski
Yokohama, Japan
http://www.mimuw.edu.pl/~akoz/
http://platon.c.u-tokyo.ac.jp/andrzej/