Wikipedia defines halting set as follows:
$H = \{(i, x) |$ program $i$ halts when run on input $x\}$
Ullman defines universal language as follows
$U = \{(M, w) |$ Turing machine $M$ accepts $w\}$
This link says:
The universal TM, $U$, is a TM which takes as input an encoded machine/string pair, $(M,w)$, and performs the actions of $M$ running with input string $w$. The most important achievement is to simulate the accepting (i.e., halting) behavior of M. That is we want:
$M$ halts on $w$ if and only if $U$ halts on $E(M,w)$
or, in notational terms,
$M↓w$ if and only if $U↓E(M,w)$
Note that $E()$ is encoding function. Also I feel above defines universal language somewhat different than what Ullman defines. While defining universal TM, Ullman says "$M$ accepts on $w$", whereas above link says "$U$ halts on $E(M,w)$". Its accept vs halt which is I am trying to point out. I feel TM can halt with or without accepting. So I feel the definitions of universal language differs in both sources. Q1. Right?
Thats why the link says:
HALT $= \{ x ∈ \{c,1\}^*: x = E(M,w)$ where $M↓w \}$
HALT is precisely the language accepted by the Universal Turing Machine, U:
$M↓w$ if and only if $U↓E(M,w)$
where $↓$ seems to be symbol indicating "halts"
But Ullman says:
One often hears of the halting problem for TMs as a problem similar to $L_u$ - one that is RE but not recursive. In fact, the original TM of A. M. Turing accepted by halting, not by final state. We could define H(M) for TM M to be the set of the inputs $w$ such that it halts given input $w$, regardless of whether or not $M$ accepts $w$. Then, the halting problem is the set of pairs $(M,w)$ such that $w$ is in $H(M)$
By this, I feel Ullman disagrees that halting language is what is accepted by Universal TM.
The link also says:
In particular, the universal TM accepts HALT, but no TM can decide HALT.
If I get it correct, I believe "universal TM accepts HALT" means Universal UTM can simulate HTM (accepting TM and w as input) which checks whether input TM halts on input w. Q2. Am I right with this? Q3. But then that does not mean L(UTM) = L(HTM) as said by the same link in fourth quote. Right?
Q4. Can you summarise halting problem vs universal language? I feel the link is somewhat incorrect and Ullman is correct. I believe:
Halting language L(HTM) = {(TM,w) | TM halts on w with or without accepting}
Universal language L(UTM) = {(TM,w) | TM accepts w by halting in final state}
From above definitions, Halting language is not same as Universal language
Universal language can simulate Halting language as follows: (HTM,(TM,w)) | HTM accepts (TM,w) by halting in final state when TM halts on w with or without accepting w
Am I correct with above summary understanding?