I think that with the implied range of its parametric values (which, furthermore, would be language-dependent, as far as I understand), this Heaps law is something too vague to be deemed a "law", or, at least, a "practical law". Moreover, it implies that with the infinite volume of the text the vocabulary would be also infinite, which is simply not true, applied to a natural language, the vocabulary of which is apparently finite.
I would also say that the Heaps law is somewhat excessive, since one can derive the relationship from the Zipf law - but it would not be the Heaps law to which one would arrive.
Consider a text utilizing a vocabulary of D words. If the count of the most frequent word is F, then according to the Zipf law the count of the second most frequent word would be F/2, the count of the third most frequent word would be F/3, et cetera, and the count of the D-th most frequent word (that is, that of the least frequent word) would be F/D. The sum total, which is the volume of the text, would be V = F*(1 + 1/2 + 1/3 + ... + 1/D). What is in brackets is the so-called "harmonic series", the sum of which, under large values of D, is approximated as ln(D) + g, where g is Euler's constant (approximately 0,577). Hence, V = F*[ln(D) + g].
Now, expressing D (vocabulary) through V (volume), we get from this: D = A*exp[V/F], where A is a constant which I introduced for brevity, and A = [exp(-F*g)]^(1/F), which means that A is positive but less than unity.
In contrast to this, Heaps law suggests D = K*V^b, where K and b are positive constants, with K >> 1, and b < 1. The wikipedia article argues that the two laws are "asymptotically equivalent", referring in this to some papers of which full texts are not available for free, so I could not check them, but offhand I can't see how would they be, since a brief check shows me that, with V > F (which of course holds true by definition) and b < 1, A*exp[V/F] grows faster than K*V^b.
I would also say that the Heaps law is somewhat excessive, since one can derive the relationship from the Zipf law - but it would not be the Heaps law to which one would arrive.
Consider a text utilizing a vocabulary of D words. If the count of the most frequent word is F, then according to the Zipf law the count of the second most frequent word would be F/2, the count of the third most frequent word would be F/3, et cetera, and the count of the D-th most frequent word (that is, that of the least frequent word) would be F/D. The sum total, which is the volume of the text, would be V = F*(1 + 1/2 + 1/3 + ... + 1/D). What is in brackets is the so-called "harmonic series", the sum of which, under large values of D, is approximated as ln(D) + g, where g is Euler's constant (approximately 0,577). Hence, V = F*[ln(D) + g].
Now, expressing D (vocabulary) through V (volume), we get from this: D = A*exp[V/F], where A is a constant which I introduced for brevity, and A = [exp(-F*g)]^(1/F), which means that A is positive but less than unity.
In contrast to this, Heaps law suggests D = K*V^b, where K and b are positive constants, with K >> 1, and b < 1. The wikipedia article argues that the two laws are "asymptotically equivalent", referring in this to some papers of which full texts are not available for free, so I could not check them, but offhand I can't see how would they be, since a brief check shows me that, with V > F (which of course holds true by definition) and b < 1, A*exp[V/F] grows faster than K*V^b.

