I am going through Dan Boneh's video on PLONK - https://www.youtube.com/watch?v=LbpPCN-f_XA&t=952s
At around 19 minutes, he gets to the Prod Check Gadget.
Background:
$\omega \in \mathbb F_p$ is the primitive $k$th root of unity (i.e. $\omega^{k} = 1$)
$\Omega = \{1, \omega, \omega^{2}, ..., \omega^{k-1}\}$
Let $t(1) = f(1)$ and $t(\omega^s) = \prod_{i=0}^s f(\omega^i)$ for $s = 1, ..., k-1$.
Prover has to prove that:
$\prod_{a \in \Omega} f(a) = 1$
Boneh says that Prover can prove the above by proving 2 things
1) $t(\omega^{k-1}) = 1$
and
2) $t(\omega\cdot x) - t(x)\cdot f(\omega \cdot x) = 0$ for all $x \in \Omega$
I understand the 2nd check but I don't understand why it's required. Boneh says it's to make sure $t$ was constructed correctly.
How exactly could the first check be true without the 2nd check also being true. How exactly can a malicious Prover do something malicious if only the first check had to be proved?
UPDATE:
I am wondering if the reason is this -
Normally, commitment openings are evaluated at a random point sent by the verifier. However, here the commitment openings are going to be evaluated at known values from $\Omega$. So it would be easy for the prover to cheat. He can create a polynomial which evaluates to whatever value he wants & commits to it rather than the actual $t(x)$. I think the 2nd check may be to prevent that.