In classical Japanese, あり confusingly crops up in a bunch of places
where it doesn't immediately seem entirely necessary (to me):
With adjectives:
Past tense of 熱し
≡ { definition }
「熱し」の連用形+「あり」の連用形+「たり」
≡ { concatenation }
熱くありたり
≡ { euphonic change }
熱かりたり
If the only requirement for たり was to attach to a 連用形, one
would think the form 「熱し」の連用形+「たり」 ≡ 熱くたり or
something similar would be fine, considering that constructions
like 「熱し」の連用形+「す」 ≡ 熱くす are totally fine.
But despite this, an intermediate あり is inserted.
With negation:
Past tense of (negation of 思う)
≡ { definition }
Past tense of (「思う」の未然形+「ず」)
≡ { definition }
「思う」の未然形+「ず」の連用形+「あり」の連用形+「たり」
≡ { concatenation }
思わずありたり
≡ { euphonic change }
思わざりたり
Again, if たり just needed to attach to a 連用形, it seems that
思わずたり should have been fine, but instead an intermediate
あり is inserted.
From just this evidence, one could perhaps argue that たり is actually
not past-tense, but ありたり is. However, this is not true, because
With verbs:
Past tense of 思う:
≡ { definition }
「思う」の連用形+「たり」
≡ { concatenation }
思いたり
In this case, あり is definitely not present.
So summarizing our evidence...
1) たり doesn't require あり to function with verbs, it can attach
directly to the 連用形
2) たり does require あり to function with adjectives and the
negation particle, despite both of these things having a
functioning 連用形
There are some theories I can draw as to why this is the case...
1) たり specifically wants verbs, and あり is inserted to accomplish
this.
However, this makes very little sense to me. I know of no other
restriction in Japanese like "wants verb", it is always something
else like telacity or some other semantic property.
2) たり wants some specific semantic property for the thing it
attaches to, and adjectives and ず cannot provide those semantics
without a helper. This raises the question of what semantics it
wants.
So, I'm currently subscribing to theory (2) but have absolutely no
idea how to make progress into figuring out what property たり wants
that あり provides.
Do you have any guesses?
(Perhaps an interesting point here is that たり historically is
「つ」の連用形+「あり」 ≡ てあり ≡ たり
which makes things even more interesting, because 熱くて itself is
totally fine, so syntactically there should be no issue with
熱くたり, yet it is not used, which supporting the previous thought
of some sort of semantic restriction.)