1
$\begingroup$

Question: Prove that the 6-rule CFG for arithmetic expressions below is unambiguous.

The CFG is as follows. $G = (V:=\{E,T,F\}, \Sigma:=\{+, \times,(,),x\},R,E\})$

where $R$ consists of 6 rules:

$E\rightarrow E+T ~|~ T~~~~~~ T\rightarrow T\times F|F~~~~~~ F\rightarrow (E) | x$

My thoughts: I think we should start by showing each string $s$ in language has a unique derivation by strong induction on the length of $s$, but not sure how to proceed. Could you please help?

Many thanks!

$\endgroup$
1
  • $\begingroup$ "Removing left recursion cannot introduce ambiguity. This kind of transformation preserves ambiguity. If the CFG is already ambiguous, the result will be ambiguous too, and if the original is not, the resulting neither" says Andres at here $\endgroup$
    – John L.
    Jul 21, 2022 at 2:07

1 Answer 1

0
$\begingroup$

Sometimes explicit induction can be avoided by using contradiction. Assume there is a smallest pair of different derivation(trees) that derive the same string. Since the pair is different, we can also assume that the roots of the trees are the same, but the applied productions differ.

So can we have two derivation trees that start with the productions $F\to (E)$ and $F\to x$ and derive the same string. Obviously not. The same should be checked for the pair $E\to E+T$, $E\to T$ and the pair $T\to T\times F$, $T\to F$.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.