a mapping reduction
A mapping reduction is the tidiest, most restrictive kind of reduction: a single computable function that rewrites every yes-instance into a yes-instance and every no-instance into a no-instance. Think of a foolproof translator who turns every English yes/no question into a French yes/no question so faithfully that the French answer is always identical to the English one. You never have to think; you just translate the question, ask once, and the answer comes back unchanged.
Formally, a language A mapping-reduces to a language B, written A <=m B, if there is a computable (total, always-halting) function f such that for every string w, w is in A if and only if f(w) is in B. The 'if and only if' is the heart of it: yes maps to yes and no maps to no, with no flips and no exceptions. The name 'many-one' records that f may send many different strings to the same target but never splits one string into a question that needs two answers. Crucially f calls B only once, conceptually, and uses its answer verbatim, the opposite end of the dial from a Turing reduction which may query an oracle for B many times and reshape the answers.
Mapping reductions are the precise tool for transferring decidability and recognizability. If A <=m B then: if B is decidable so is A, if B is recognizable so is A, and reading the same facts in reverse, if A is undecidable so is B, and if A is unrecognizable so is B. Because the if-and-only-if treats yes and no symmetrically, a mapping reduction also transfers co-recognizability and respects complements: A <=m B is the same statement as (complement of A) <=m (complement of B). This symmetry is exactly why mapping reductions, rather than the more powerful Turing reductions, are the right instrument for separating recognizable from unrecognizable languages.
To show the halting problem reduces to A_TM (does machine M accept input w), map an instance (M, w) of halting to a pair (M', w): build M' to simulate M on w, and if M halts, make M' accept. Then M halts on w if and only if M' accepts w, so f(M, w) = (M', w) is a mapping reduction from HALT to A_TM.
One computable function rewrites the question so that yes stays yes and no stays no.
The reducing function f must be total and always halt, and the equivalence must hold both ways: w in A iff f(w) in B. A function that gets only the yes-direction right is not a valid mapping reduction.