Это (я думаю) простая задача из теории сложности.
#Consider the language E over the binary alphabet
#consisting of strings representing even non-negative
#integers (with leading zeros allowed).
#I.e. E = {x | x[-1] == '0'}.
#
#Reduce E to the language {'Even'} by implementing
#the function R
def R(x):
#Code
def main():
#test cases
assert(R('10010') in ['Even'])
assert(R('110011') not in ['Even'])
if __name__ == '__main__':
main()
Согласно Mapping Reduction def:
«Язык A сводится к языку B, записанному A ≤ mB, если существует вычислимая функция f : Σ ∗ −→ Σ ∗ , где для каждого w, w ∈ A ⇐⇒ f (w) ∈ B. Функция f называется редукцией из A в B."
Вычислимой функцией отображения будет f(n) = 2n (или x ‹‹ y в Python), но в этом случае эти утверждения не имеют смысла, потому что каждый R(x) должен быть в {'Even'}...?