Вы можете использовать опцию smt.macro_finder = true для преобразования квантифицированных равенств в макросы. По умолчанию это отключено, поэтому лучше определить макросы для функций, которые вы применяете только один раз. Это также означает, что Z3 заканчивается использованием общего решателя на основе квантификатора. В некоторых случаях функции, определенные макросами, используя команды «define-fun», удобны для формул, которые являются чисто битовыми или чисто линейными арифметическими. В этих случаях Z3 использует более эффективные настройки. Например, Z3 использует распространение «релевантности», чтобы избежать создания избыточного квантификатора. распространение релевантности приходит со своими собственными накладными расходами, что допустимо с квантованными формулами, но не является хорошей идеей для бескванторных формул.