I find romsek's notation a bit hard to follow, but that stems from what seems to me to be a badly worded problem.
First, "positive result" is a confusing way to specify "flagged as lying." Therefore, a positive result is correct if the subject lied and is incorrect if the subject told the truth. There is no theoretical reason that the probability of an incorrect response to truth plus the probability of a correct response to falsity will equal 1.
[MATH]\text {P(flagged given lie) + P(not flagged given lie)} = 1.[/MATH]
[MATH]\text {P(flagged given truth) + P(not flagged given truth)} = 1.[/MATH]
Both the preceding statements are valid, but they do not entail that
[MATH]\text {P(flagged given lie) + P(flagged given truth)} = 1.[/MATH]
The statement above is not generally true. It just happens to be true in this problem.
But the problem is unconcerned with whether the flagging is correct or not. In any case, I think the notation needs to be as clear as possible given the weird interpretation of "positive result."
Second, the problem as given by the OP does not tell us what is potentially relevant, namely how many questions were asked of each subject. But it makes sense to assume one question.
I like to start with identifying the probability space. The probability space with respect to each subject is:
Subject 1, 2 possibilities, namely lies and is flagged (1 * 0.9 = 0.9) or lies and is not flagged (1 * 0.10 = 0.1), adding to 1;
Subject 2, 4 possibilities, namely lies and is flagged (0.7 * 0.9 = 0.63), lies and is not flagged (0.7 * 0.1 = 0.07), does not lie and is flagged (0.3 * 0.1 = 0.03). or does not lie and is not flagged (0.3 * 0.9 = 0.27), adding yp to 1; and
Subject 3, 4 possibilities, namely lies and is flagged (0.1 * 0.9 = 0.09), lies and is not flagged (0.1 * 0.1 = 0.01), does not lie and is flagged (0.9 * 0.1 = 0.09). or does not lie and is not flagged (0.9 * 0.9 = 0.81).
Thus, there are 2 * 4 * 4 = 32 joint probabilities to consider. If you want to develop all of them and avoid computational error, it is probably easiest to use a spreadsheet. And obviously, on this kind of problem, as the number of joint probabilities rises, using a spreadsheet to generate a complete list of probabilities (which is nice to do as a checking mechanism) becomes more and more efficient. But it is not necessary for this problem.
Given independence, we have
[MATH]\text {P(subject 1 only one flagged)} =[/MATH]
[MATH]]0.9(0.07+0.27)(0.01 + 0.81) = 0 .9 * 0.34 * 0.82 = 0.25092.[/MATH]
[MATH]\text {P(subject 2 only one flagged)} =[/MATH]
[MATH]]0.1(0.63+0.03)(0.01 + 0.81) = 0 .1 * 0.66 * 0.82 = 0.05412.[/MATH]
[MATH]\text {P(subject 3 only one flagged)} =[/MATH]
[MATH]]0.1(0.01 + 0.81) = 0 .1 * (0.07+0.27) * (0.09 + 0.09) = 0.1 * 0.34 * 0.18 = 0.00612.[/MATH]
[MATH]\therefore \text {P(exactly one flagged)} = 0.25092 + 0.05412 + 0.00612 = 0.31116[/MATH]
[MATH]\text {P(subject 1 flagged given only one flagged)} = \dfrac{0.25092}{0.31116} \approx 80.6\%.[/MATH]
Where did Halls go astray?
How I would solve this: imagine 1000 such tests.
The test shows positive for A 900 times, negative for B and C 340+ 660= 900 times, a total or 900+ 900= 1800 times.
The test shows positive for B 660 times, negative for A and C 100+ 660= 760 times, a total of 660+ 750= 1410 times.
The test shows positive for C 340 times, negative for A and B 100+ 700= 800 times, a total of 340+ 800= 1140 times.
Out of the 1800+ 1410+ 1140= 4350 cases, A was positive, B and C negative 1800 times. Given that only one tested positive, the probability it was A is 1800/4350= 0.413.
But there are not 4350 cases, just 1000. He is double counting