Section InfinitePrimitiveElementTheorem.
Local Notation "p ^ f" := (map_poly f p) : ring_scope.
Variables (F L : fieldType) (iota : {rmorphism F -> L}).
Variables (x y : L) (p : {poly F}).
Hypotheses (nz_p : p != 0) (px_0 : root (p ^ iota) x).
Let inFz z w := exists q, (q ^ iota).[z] = w.

Lemma char0_PET (q : {poly F}) :
q != 0 -> root (q ^ iota) y -> [char F] =i pred0 ->
exists n, let z := y *+ n - x in inFz z x /\ inFz z y.