Skip to content
geeksforgeeks
  • Tutorials
    • Python
    • Java
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
    • Practice Coding Problems
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Number System and Arithmetic
  • Algebra
  • Set Theory
  • Probability
  • Statistics
  • Geometry
  • Calculus
  • Logarithms
  • Mensuration
  • Matrices
  • Trigonometry
  • Mathematics
Open In App
Next Article:
Introduction of K-Map (Karnaugh Map)
Next article icon

Functional Completeness in Digital Logic

Last Updated : 17 Sep, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

Functional Completeness is a crucial concept in digital logic design. A set of logical operators is functionally complete if it can be used to express any Boolean function. This means that any logical operation, regardless of complexity, can be constructed using only operators from a functionally complete set.

Table of Content

  • Functional Completeness in Digital Logic
  • Post's Functional Completeness Theorem
  • Solved Examples of functional Completeness
  • Advantages of Functional Completeness
  • Disadvantages of Functional Completeness

Functional Completeness in Digital Logic

A set of operations is said to be functionally complete or universal if and only if every switching function can be expressed utilizing operations in it. A set of Boolean functions is functionally complete if all other Boolean functions can be constructed from this set and a set of input variables are provided, e.g.

  • Set A = {+,*,' (OR, AND, complement) } are functionally complete.
  • Set B = {+,'} are functionally complete
  • Set C = {*,'} are functionally complete

Post's Functional Completeness Theorem

Important closed classes of functions:

  1. T0 – class of all 0-preserving functions, such as f(0, 0, ... , 0) = 0.
  2. T1 – class of all 1-preserving functions, such as f(1, 1, ... , 1) = 1.
  3. S – class of self-dual functions, such as f(x1, … ,xn) = ¬ f(¬x1, … , ¬xn).
  4. M – class of monotonic functions, such as : {x1, … ,xn} ? {x1, … ,xn}, if xi ? yi if {x1, … ,xn} ? {x1, … ,xn} then f(x1, … ,xn) ? f(x1, … ,xn)
  5. L – class of linear functions, which can be presented as: f(x1, … ,xn) = a0 + a1·x1 + … + an·xn ; ai {0, 1}.

Theorem - A system of Boolean functions is functionally complete if and only if for each of the five defined classes T0, T1, S, M, L, there is a member of F which does not belong to that class. These are minimal functionally complete operator sets - One element - {?}, {?}. Two elements - {\displaystyle \{\vee ,\neg \}}, {\displaystyle \{\wedge ,\neg \}},   {\displaystyle \{\to ,\neg \}}, {\displaystyle \{\gets ,\neg \}},   {\displaystyle \{\to ,\bot \}}, {\displaystyle \{\gets ,\bot \}},   {\displaystyle \{\to ,\nleftrightarrow \}}, {\displaystyle \{\gets ,\nleftrightarrow \}},   {\displaystyle \{\to ,\nrightarrow \}}, {\displaystyle \{\to ,\nleftarrow \}},   {\displaystyle \{\gets ,\nrightarrow \}}, {\displaystyle \{\gets ,\nleftarrow \}},   {\displaystyle \{\nrightarrow ,\neg \}}, {\displaystyle \{\nleftarrow ,\neg \}},   {\displaystyle \{\nrightarrow ,\top \}}, {\displaystyle \{\nleftarrow ,\top \}},   {\displaystyle \{\nrightarrow ,\leftrightarrow \}}, {\displaystyle \{\nleftarrow ,\leftrightarrow \}}.   Three elements - {\displaystyle \{\lor ,\leftrightarrow ,\bot \}},   {\displaystyle \{\lor ,\leftrightarrow ,\nleftrightarrow \}},   {\displaystyle \{\lor ,\nleftrightarrow ,\top \}},   {\displaystyle \{\land ,\leftrightarrow ,\bot \}},   {\displaystyle \{\land ,\leftrightarrow ,\nleftrightarrow \}},   {\displaystyle \{\land ,\nleftrightarrow ,\top \}}.   

Solved Examples of functional Completeness - 

Check if function F(A, B, C) = A'+BC' is functionally complete.

  • Explanation - Let us start by putting all variables as 'A' so it becomes F(A, A, A) = A'+A.A' = A'----(i) F(B, B, B) = B'+B.B' = B'---(ii) Now substitute F(A, A, A) in place of the variable 'A' and F(B,B, B) in place of the variable 'C' F(F(A, A, A), B, F(B, B, B)) = (A')'+B.(B')' = A+B---(iii) from (i) and (ii) complement is derived and from (iii) operator '+' is derived so this function is functionally complete as from above if a function contains {+,'} is functionally complete.

Check if function F(A, B) = A'+B is functionally complete.

  • Explanation - Let us start by putting all variables as 'A' so it becomes F(A, A) = A'+A = 1----(i) F(B, B) = B'+B = 1---(ii) F(A,0) = A'+0 = A'---(iv) Now substitute F(A,0) in place of the variable 'A' F(F(A,0), B) = (A')'+B = A+B---(iii) from (iv) complement is derived and from (iii) operator '+' is derived so this function is functionally complete as from above if a function contains {+,'} is partially functionally complete.

Check if function F(A, B) = A'B is functionally complete.

  • Explanation - Let us start by putting all variables as 'A' so it becomes F(A, A) = A'.A' = 0----(i) F(A,0) = A'.0 = 0---(ii) F(A,1) = A'.1 = A'---(iv) Now substitute F(A,1) in place of the variable 'A' F(F(A,1), B) = (A')'*B = A*B---(iii) from (iv) complement is derived and from (iii) operator '*' is derived so this function is functionally complete as from above if a function contains {*,'} is partially functionally complete. Note - If the function becomes functionally complete by substituting '0' or '1' then it is known as partially functionally complete.

Check if function F(A, B) = A'B+AB' (EX-OR) is functionally complete.

  • Explanation - Let us start by putting all variables as 'A' so it becomes F(A,1) = A'.1 + A.0 = A'----(i) F(A',B) = AB + A'B'--(ii) F(A',B') = AB' + A'B--(iii) F(A,B') = A'B' + AB---(iv) So there is no way to get {+,*,'} according to condition. So EX-OR is non functionally complete .

Advantages of Functional Completeness

1. Flexibility: A functionally complete set of logical operations can represent any boolean function, which makes it a flexible and powerful tool for digital logic design.
2. Efficiency: A functionally complete set of logical operations can be implemented using a small number of basic gates, which makes it an efficient and cost-effective approach for implementing digital circuits.
3. Universality: A functionally complete set of logical operations is universal, which means that it can be used in any application that requires digital logic design. 

Disadvantages of Functional Completeness

1. Complexity: Functionally complete sets of logical operations can be complex and difficult to understand, especially for beginners in digital logic design.
2. Limited Applicability: Functionally complete sets of logical operations may not be suitable for all digital logic design applications. Some applications may require specialized operations or functions that are not represented by functionally complete sets.
3.Non-Intuitiveness: Functionally complete sets of logical operations can be difficult to use and interpret because they are based on abstract mathematical concepts rather than intuitive concepts.

Summary

Functional Completeness in digital logic refers to the ability of a set of gates to express any Boolean function. NAND and NOR gates are functionally complete on their own, making them essential for building any logic circuit. This concept is critical for simplifying and optimizing hardware design. Understanding functional completeness enables efficient circuit implementation.

Related Articles:

  • Functionally Complete Operations
  • Digital Electronics and Logic Design Tutorials

Next Article
Introduction of K-Map (Karnaugh Map)

V

Vaishali Bhatia
Improve
Article Tags :
  • Engineering Mathematics
  • GATE CS
  • Mathematics
  • Digital Logic
  • Discrete Mathematics

Similar Reads

    Introduction of Logic Gates
    In Boolean Algebra, there are three basic operations, +,\:.\:,\:^\prime which are analogous to disjunction, conjunction, and negation in propositional logic . Each of these operations has a corresponding logic gate. Apart from these, there are a few other logic gates as well. It was invented by Geor
    9 min read
    Properties of Boolean Algebra
    The Boolean Algebra uses sets of rules for analyzing digital gates and circuits. In this article, we will be going through the Properties or Laws of the Boolean algebra. So first we will start our article by defining what are the properties of Boolean Algebra, and then we will go through what are Bo
    7 min read
    Minimization of Boolean Functions
    Boolean functions are used to represent logical expressions in terms of sum of minterms or product of maxterms. Number of these literals (minterms or maxterms) increases as the complexity of the digital circuit increases. This can lead to large and inefficient circuits. By minimizing Boolean functio
    4 min read
    Representation of Boolean Functions
    Boolean functions are expressions involving Boolean variables and operators, such as AND, OR, and NOT. These functions are fundamental in digital logic design, computer science, and engineering.Table of ContentWhat are Boolean Functions?Definition of Boolean FunctionsRepresentation of Boolean Functi
    10 min read
    Canonical and Standard Form
    Canonical Form - In Boolean algebra, the Boolean function can be expressed as Canonical Disjunctive Normal Form known as minterm and some are expressed as Canonical Conjunctive Normal Form known as maxterm. In Minterm, we look for the functions where the output results in "1" while in Maxterm we loo
    6 min read
    Functional Completeness in Digital Logic
    Functional Completeness is a crucial concept in digital logic design. A set of logical operators is functionally complete if it can be used to express any Boolean function. This means that any logical operation, regardless of complexity, can be constructed using only operators from a functionally co
    6 min read
    Introduction of K-Map (Karnaugh Map)
    In many digital circuits and practical problems, we need to find expressions with minimum variables. We can minimize Boolean expressions of 3, 4 variables very easily using K-map without using any Boolean algebra theorems. It is a tool which is used in digital logic to simplify boolean expression. I
    5 min read
    Various Implicants in K-Map
    An implicant can be defined as a product/minterm term in Sum of Products (SOP) or sum/maxterm term in Product of Sums (POS) of a Boolean function. For example, consider a Boolean function, F = AB + ABC + BC. Implicants are AB, ABC, and BC. There are various implicant in K-Map listed below :Prime Imp
    5 min read
    PDNF and PCNF in Discrete Mathematics
    PDNF (Principal Disjunctive Normal Form)It stands for Principal Disjunctive Normal Form. It refers to the Sum of Products, i.e., SOP. For eg. : If P, Q, and R are the variables then (P. Q'. R) + (P' . Q . R) + (P . Q . R') is an example of an expression in PDNF. Here '+' i.e. sum is the main operato
    4 min read
    Variable Entrant Map (VEM) in Digital Logic
    K-map is the best manual technique to solve Boolean equations but it becomes difficult to manage when number of variables exceed 5 or 6. So, a technique called Variable Entrant Map (VEM) is used to increase the effective size of k-map. It allows a smaller map to handle large number of variables. Thi
    3 min read
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences