En realidad, puede hacerlo a través de una forma de interpretación abstracta ¡! Vamos a interpretar esta gramática (no los árboles sintácticos, ¡la propia gramática!) en los naturales, es decir, la longitud mínima que puede generar cada no-terminal. Para ello, sustituiremos cada flecha de producción por '=', cada terminal por 1, la concatenación por '+' y la alternancia por 'min'. Para mayor claridad, escribiré los símbolos de la interpretación en minúsculas (y voy a pasar por encima de algunos detalles).
Aplicando este procedimiento a la gramática dada, obtenemos: $$\begin{align} &s = \min(a + b + a, s + s) \\ &a = \min(s + 1, t + 1 + t) \\ &b = \min(s+1,1) \\ &t = 1 \end{align} $$
Sustituyendo $t=1$ (es decir, hemos descubierto que $T$ produce al menos un terminal), y utilizando $\min(a+c,b+c)=\min(a,b)+c$ nos encontramos con que: $$\begin{align} &s = \min(a + b + a, s + s) \\ &a = \min(s, 2) + 1 \\ &b = \min(s,0) + 1 \end{align} $$
Ahora podemos deducir (utilizando $x \geq 0 \implies \min(x,0) = 0$ ) que $b = 1$ . Sustituyendo eso nos da: $$\begin{align} &s = \min(2a + 1, 2s) \\ &a = \min(s, 2) + 1 \end{align} $$
Ahora estamos aparentemente atascados, debido a la recursión mutua entre $a$ y $s$ . Y de hecho, $s=0, a=1$ sería una solución para este último sistema. Esto corresponde (vagamente) a la utilización de la producción $S \to SS$ para siempre, sin producir ninguna terminal. Pero también podríamos razonar que $S$ nunca puede producir la cadena vacía - haciendo una segunda interpretación, ¡que pondré al final para seguir con esta historia!
Así que también tenemos $s \geq 1$ . Al conectar esto a $s = \min(2a + 1, 2s)$ junto con $a \geq 1$ nos da $s \geq 2$ De ahí que $a \geq 3$ . De ello se desprende que $s \geq 4$ y finalmente llegamos a $s \geq 7$ .
Por lo tanto, tenemos que $s=7, a=3$ es una solución del último sistema de ecuaciones mostrado, sujeta a la restricción de que $s \geq 1$ . De ello se concluye finalmente que $S$ produce al menos 7 terminales.
Esto puede parecer un montón de trabajo para un problema tan trivial, pero después de la idea de utilizar una segunda interpretación, no requiere grandes saltos de conocimiento por lo que un ordenador podría hacerlo. De hecho, los generadores de analizadores sintácticos utilizan un procedimiento similar para ver cuál puede ser el primer terminal procedente de un no-terminal y así sucesivamente.
Uno de los detalles que he omitido es que una gramática simple como $S \to 1S$ (con interpretación $s = s+1$ aparentemente no tiene solución - pero la tiene, $s=\infty$ ¡! Hay formas de evitar esto, por supuesto (se podría demostrar que esta nueva gramática no termina mediante otra interpretación abstracta, o se podría interpretar en $\mathbb{N} \cup \{\infty\}$ pero espero haber captado al menos la idea básica...
Apéndice: Prueba $S$ no puede producir la cadena vacía
En lugar de una interpretación numérica, vamos a interpretar la gramática en los booleanos, para responder a la pregunta "¿Puede este terminal producir la cadena vacía?" Un terminal es interpretado por false( $\perp$ ), la concatenación por $\wedge$ y la alternancia por $\vee$ (y la cadena vacía por la verdad, pero eso no es necesario aquí). Obtenemos:
$$\begin{align} &s = (a \wedge b \wedge a) \vee (s \wedge s) \\ &a = (s \wedge \perp) \vee (t \wedge \perp \wedge t) \\ &b = (s \wedge \perp) \vee \perp \\ &t = \perp \end{align} $$
Con un poco de lógica booleana, esto se simplifica rápidamente a $s,a,b,t=\perp$ por lo que ninguno de los no-terminales puede producir la cadena vacía. ¡Uf!