Re: InequalityInstance bug?
- To: mathgroup at smc.vnet.net
- Subject: [mg26574] Re: [mg26560] InequalityInstance bug?
- From: BobHanlon at aol.com
- Date: Tue, 9 Jan 2001 01:51:49 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
I get a correct solution on a Mac.
$Version
"4.1 for Power Macintosh (November 2, 2000)"
ineqs = {
r[1, 2] - r[2, 1] == 0,
r[2, 1] == -r[1, 1] - r[3, 1],
-r[1, 2] + r[2, 1] == 0,
r[2, 2] == -r[1, 2] - r[3, 2],
r[2, 3] == -r[1, 3] - r[3, 3],
r[2, 4] == -r[1, 4] - r[3, 4],
r[1, 3] - r[3, 1] == 0,
-r[1, 3] + r[3, 1] == 0,
r[2, 3] - r[3, 2] == 0,
-r[2, 3] + r[3, 2] == 0,
r[1, 4] - r[4, 1] == 0,
r[4, 1] == r[1, 1],
-r[1, 4] + r[4, 1] == 0,
r[2, 4] - r[4, 2] == 0,
r[4, 2] == r[1, 2],
-r[2, 4] + r[4, 2] == 0,
r[3, 4] - r[4, 3] == 0,
r[4, 3] == r[1, 3],
-r[3, 4] + r[4, 3] == 0,
r[4, 4] == r[1, 4],
(-(r[1, 2]*r[3, 1]) + r[1, 1]*r[3, 2])^2 +
(-(r[1, 3]*r[3, 1]) + r[1, 1]*r[3, 3])^2 +
(-(r[1, 3]*r[3, 2]) + r[1, 2]*r[3, 3])^2 +
(-(r[1, 4]*r[3, 1]) + r[1, 1]*r[3, 4])^2 +
(-(r[1, 4]*r[3, 2]) + r[1, 2]*r[3, 4])^2 +
(-(r[1, 4]*r[3, 3]) + r[1, 3]*r[3, 4])^2 > 0,
r[1, 1] >= 0,
-(r[1, 2]*r[2, 1]) + r[1, 1]*r[2, 2] >= 0,
-(r[1, 3]*r[2, 2]*r[3, 1]) + r[1, 2]*r[2, 3]*r[3, 1] +
r[1, 3]*r[2, 1]*r[3, 2] - r[1, 1]*r[2, 3]*r[3, 2] -
r[1, 2]*r[2, 1]*r[3, 3] + r[1, 1]*r[2, 2]*r[3, 3] >= 0,
r[1, 4]*r[2, 3]*r[3, 2]*r[4, 1] -
r[1, 3]*r[2, 4]*r[3, 2]*r[4, 1] - r[1, 4]*r[2, 2]*
r[3, 3]*r[4, 1] + r[1, 2]*r[2, 4]*r[3, 3]*r[4, 1] +
r[1, 3]*r[2, 2]*r[3, 4]*r[4, 1] - r[1, 2]*r[2, 3]*
r[3, 4]*r[4, 1] - r[1, 4]*r[2, 3]*r[3, 1]*r[4, 2] +
r[1, 3]*r[2, 4]*r[3, 1]*r[4, 2] + r[1, 4]*r[2, 1]*
r[3, 3]*r[4, 2] - r[1, 1]*r[2, 4]*r[3, 3]*r[4, 2] -
r[1, 3]*r[2, 1]*r[3, 4]*r[4, 2] + r[1, 1]*r[2, 3]*
r[3, 4]*r[4, 2] + r[1, 4]*r[2, 2]*r[3, 1]*r[4, 3] -
r[1, 2]*r[2, 4]*r[3, 1]*r[4, 3] - r[1, 4]*r[2, 1]*
r[3, 2]*r[4, 3] + r[1, 1]*r[2, 4]*r[3, 2]*r[4, 3] +
r[1, 2]*r[2, 1]*r[3, 4]*r[4, 3] - r[1, 1]*r[2, 2]*
r[3, 4]*r[4, 3] - r[1, 3]*r[2, 2]*r[3, 1]*r[4, 4] +
r[1, 2]*r[2, 3]*r[3, 1]*r[4, 4] + r[1, 3]*r[2, 1]*
r[3, 2]*r[4, 4] - r[1, 1]*r[2, 3]*r[3, 2]*r[4, 4] -
r[1, 2]*r[2, 1]*r[3, 3]*r[4, 4] + r[1, 1]*r[2, 2]*
r[3, 3]*r[4, 4] >= 0};
vars = {r[1, 1], r[1, 2], r[1, 3], r[1, 4],
r[2, 1], r[2, 2], r[2, 3], r[2, 4],
r[3, 1], r[3, 2], r[3, 3], r[3, 4],
r[4, 1], r[4, 2], r[4, 3], r[4, 4]};
soln = Developer`InequalityInstance[ ineqs, vars ] // Sort
{r[1, 1] -> 1, r[1, 2] -> -1, r[1, 3] -> 0, r[1, 4] -> 1, r[2, 1] -> -1, r[2,
2] -> 2, r[2, 3] -> -1, r[2, 4] -> -1,
r[3, 1] -> 0, r[3, 2] -> -1, r[3, 3] -> 1, r[3, 4] -> 0, r[4, 1] -> 1, r[4,
2] -> -1, r[4, 3] -> 0, r[4, 4] -> 1}
And @@ (ineqs /. soln)
True
However, this solution is not the same as the one that you gave after
substitution for the two True values.
Bob Hanlon
In a message dated 2001/1/5 11:02:56 PM, gorni at dimi.uniud.it writes:
>I am using Mathematica version 4.0. With ineqs and vars defined below
>I get the following unexpected output:
>
>In: Developer`InequalityInstance[ ineqs, vars ]
>
>Out:{r[4, 4] -> 1, r[4, 3] -> -1, r[3, 3] -> 2, r[4, 2] -> 0,
> r[4, 1] -> 1, r[3, 4] -> -1, r[3, 2] -> -1, r[3, 1] -> -1,
> r[2, 4] -> 0, r[2, 3] -> True,
> r[2, 2] -> 1, r[2, 1] -> 0, r[1, 4] -> True,
> r[1, 3] -> -1, r[1, 2] -> 0, r[1, 1] -> 1}
>
>Notice the values for r[2,3] and r[1,4]. I thought that perhaps
>True meant "arbitrary", but it is not so: the equations require
>that r[2,3] = -1, r[1,4] = 1.
>
>What happens with version 4.1?
>
>All best wishes for a new millennium with fewer bugs!
>
> Gianluca Gorni
>
>ineqs = {r[1, 2] - r[2, 1] == 0, r[2, 1] ==
> -r[1, 1] - r[3, 1], -r[1, 2] + r[2, 1] == 0,
> r[2, 2] == -r[1, 2] - r[3, 2],
> r[2, 3] == -r[1, 3] - r[3, 3],
> r[2, 4] == -r[1, 4] - r[3, 4],
> r[1, 3] - r[3, 1] == 0, -r[1, 3] + r[3, 1] == 0,
> r[2, 3] - r[3, 2] == 0, -r[2, 3] + r[3, 2] == 0,
> r[1, 4] - r[4, 1] == 0, r[4, 1] == r[1, 1],
> -r[1, 4] + r[4, 1] == 0, r[2, 4] - r[4, 2] == 0,
> r[4, 2] == r[1, 2], -r[2, 4] + r[4, 2] == 0,
> r[3, 4] - r[4, 3] == 0, r[4, 3] == r[1, 3],
> -r[3, 4] + r[4, 3] == 0, r[4, 4] == r[1, 4],
> (-(r[1, 2]*r[3, 1]) + r[1, 1]*r[3, 2])^2 +
> (-(r[1, 3]*r[3, 1]) + r[1, 1]*r[3, 3])^2 +
> (-(r[1, 3]*r[3, 2]) + r[1, 2]*r[3, 3])^2 +
> (-(r[1, 4]*r[3, 1]) + r[1, 1]*r[3, 4])^2 +
> (-(r[1, 4]*r[3, 2]) + r[1, 2]*r[3, 4])^2 +
> (-(r[1, 4]*r[3, 3]) + r[1, 3]*r[3, 4])^2 > 0,
> r[1, 1] >= 0, -(r[1, 2]*r[2, 1]) +
> r[1, 1]*r[2, 2] >= 0,
> -(r[1, 3]*r[2, 2]*r[3, 1]) + r[1, 2]*r[2, 3]*
> r[3, 1] + r[1, 3]*r[2, 1]*r[3, 2] -
> r[1, 1]*r[2, 3]*r[3, 2] - r[1, 2]*r[2, 1]*
> r[3, 3] + r[1, 1]*r[2, 2]*r[3, 3] >= 0,
> r[1, 4]*r[2, 3]*r[3, 2]*r[4, 1] -
> r[1, 3]*r[2, 4]*r[3, 2]*r[4, 1] -
> r[1, 4]*r[2, 2]*r[3, 3]*r[4, 1] +
> r[1, 2]*r[2, 4]*r[3, 3]*r[4, 1] +
> r[1, 3]*r[2, 2]*r[3, 4]*r[4, 1] -
> r[1, 2]*r[2, 3]*r[3, 4]*r[4, 1] -
> r[1, 4]*r[2, 3]*r[3, 1]*r[4, 2] +
> r[1, 3]*r[2, 4]*r[3, 1]*r[4, 2] +
> r[1, 4]*r[2, 1]*r[3, 3]*r[4, 2] -
> r[1, 1]*r[2, 4]*r[3, 3]*r[4, 2] -
> r[1, 3]*r[2, 1]*r[3, 4]*r[4, 2] +
> r[1, 1]*r[2, 3]*r[3, 4]*r[4, 2] +
> r[1, 4]*r[2, 2]*r[3, 1]*r[4, 3] -
> r[1, 2]*r[2, 4]*r[3, 1]*r[4, 3] -
> r[1, 4]*r[2, 1]*r[3, 2]*r[4, 3] +
> r[1, 1]*r[2, 4]*r[3, 2]*r[4, 3] +
> r[1, 2]*r[2, 1]*r[3, 4]*r[4, 3] -
> r[1, 1]*r[2, 2]*r[3, 4]*r[4, 3] -
> r[1, 3]*r[2, 2]*r[3, 1]*r[4, 4] +
> r[1, 2]*r[2, 3]*r[3, 1]*r[4, 4] +
> r[1, 3]*r[2, 1]*r[3, 2]*r[4, 4] -
> r[1, 1]*r[2, 3]*r[3, 2]*r[4, 4] -
> r[1, 2]*r[2, 1]*r[3, 3]*r[4, 4] +
> r[1, 1]*r[2, 2]*r[3, 3]*r[4, 4] >= 0};
>
>vars = {r[1, 1], r[1, 2], r[1, 3], r[1, 4], r[2, 1],
> r[2, 2], r[2, 3], r[2, 4],
> r[3, 1], r[3, 2], r[3, 3], r[3, 4], r[4, 1],
> r[4, 2], r[4, 3], r[4, 4]}
>