Here are four tenets I cannot reconcile:
- Double exponential time algorithms run in $O(2^{2^{n^k}})$ time with $k \in \mathbb{N}$ constant
- Exponential time algorithms run in $O(2^{n^k})$ with $k \in \mathbb{N}$ constant
- The former bound grows stricly faster than the latter; i.e., there exist algorithms that run in double exponential time but not in exponential time
- Applying $a^{b^c} = a^{bc}$ to the double exponential bound we have $O(2^{2^{n^k}}) = O(2^{2^{nk}}) = O(2^{2nk})$, which falls within the previously stated exponential bound
I feel I am missing some subtlety relating to the definition of an exponential-time algorithm as running in $O(2^{\mathrm{poly}(n)})$ rather than $O(2^{n})$, but I am not sure precisely where the subtlety lies.