Množina booleovských funkcí {f1,...,fk} je funkčně úplná, pokud každou booleovskou funkci f:{0,1}n→{0,1} lze vyjádřit jako složení některých funkcí z {f1,...,fk}.
Jinými slovy, pokud máme sadu logických operací, a pomocí této sady můžeme sestavit jakýkoli možný logický výraz, je tato sada považována za funkčně úplnou.
Řekneme, že množina výrokových spojek je úplná (tvoří úplný systém spojek), jestli je funkčně úplná množina jim odpovídajících booleovských funkcí.
Každý úplný minimální systém spojek VL nazveme bází.
Pomocí ↑ (resp. ↓) lze vyjádřit ¬,∧,∨:
Zřejmě (a↑b)↔¬(a∧b).
Odsud:
¬a↔¬(a∧a)↔(a↑a);
(a∧b)↔¬¬(a∧b)↔¬(a↑b)↔((a↑b)↑(a↑b));
(a∨b)↔¬¬(a∨b)↔¬(¬a∧¬b)↔(¬a↑¬b)↔((a↑a)↑(b↑b)).
Podobně pro ↓.
Navíc z internetu
Funkčně úplné systémy se používají pro:
Návrh digitálních obvovů
V návrhu digitálních obvodů je efektivní používat omezený počet základních operací.
Funkčně úplné systémy nám umožní realizovat všechny potřebné logické funkce pouze s těmito operacemi.
Teoretickou informatiku
Funkčně úplné systémy jsou důležité při studiu výpočetní složitosti a logických teorií. Mohou být použity k analýze, jak složité je realizovat určité funkce pomocí omezených prostředků.
Optimalizaci a minimalizaci logických obvodů
S použitím funkčně úplných systémů lze logické obvody optimalizovat a minimalizovat tím, že se redukuje počet různých typů logických operací a brán potřebných k realizaci složitějších operací.