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.