This semester I am doing my Bachelor project which is about "computing the degree of the splitting field of a polynomial $f(x) \in \mathbb{Q}[x]$".
I have successively written a program which computes such a degree for any polynomial but there is always a chance of failing since I proceed as follows:
- Calculate $f(x)$'s roots $\alpha_1 , ..., \alpha_n$
- Pick random coefficients $\beta_1, ..., \beta_n \in \{1,...,N\}$ and define $\alpha = \beta_1\alpha_1 + ... + \beta_n\alpha_n$
- Using the proof of the primitive element theorem we know that as $N\to\infty$ the probability of $\alpha$ being a primitive element of the splitting field goes to $1$.
- Compute the minimal polynomial of the chosen primitive element and we are done.
Here is my question :
Suppose my algorithm outputs a potential degree of the splitting field of $f(x)$, how can I verify with certainty that this degree is correct? That is without using any of my previous work but just in general.
Thanks!
PS: I in fact calculate approximations of $f(x)$'s roots and use the LLL-algorithm to compute minimal polynomials but this isn't relevant here.