Zadanie 16 (2p. termin oddania 16.06) Napisz program, który sprawdza, czy zadane formuły logiki zdaniowej sš tautologiami. Każda formuła jest napisem wyprowadzanym z symbolu nieterminalnego Formuła poniższej gramatyki: Zm -> a | b | ... | x | y | z Formuła -> * Formuła Formuła | + Formuła Formuła | ! Formuła | > Formuła Formuła | = Formuła Formuła | Zm przy czym: * oznacza operator koniunkcji + oznacza operator alternatywy ! oznacza operator negacji > oznacza operator implikacji = oznacza operator rownoważności Zakładamy ponadto, że zmienne wystepujące w formułach są kolejnymi małymi literami alfabetu. Formuły są zapisane w pliku, którego nazwa jest pierwszym argumentem wywołania programu, po jednej w wierszu. Program powinien utworzyć plik, którego nazwa jest drugim argumentem wywołania. W i-tym wierszu tego pliku powinien znaleźć się napis PRAWDA lub FALSZ w zależności od tego, czy i-ta formuła pliku wejściowego jest tautologią czy nie. Zakładamy, że dane w pliku wejściowym są zgodne z powyższym opisem i nie występują w nich spacje.