EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

What is Unification?

By Priya PedamkarPriya Pedamkar

Home » Software Development » Software Development Tutorials » Software Development Basics » What is Unification?

What is Unification

Introduction to Unification

Unification is a concept that is linked to logic programming. Unification as the name suggests is a kind of binding logic between two or more variables. The goal of unification is to make two expression look like identical by using substitution. Unification can be used for type inference, order sorting, narrowing, e-unification, etc. for simple logics we use first-order unification and to unify typed lambda terms we use higher-order unification.

What is Unification?

Unification is used in logical programming where the aim is to make expressions look identical to each other, and in order to make them identical, we generally use substitution. Substitution means replacing one variable with another term. When the unification is performed for variables representing functions, it is called as higher order unification and if unification is performed for simple variables it is called first order unification.

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

Here are some examples for unification:

Statement: X * Y

Substitution (x as a and y as b)

  1. a * Y ………. (i)
  2. X * b ……… (ii)
  3. a * b …….. (iii)

These all expressions are identical as we substitute X and Y as a and b.

Statement

F(x, g(y)) ……………….. (i)

F(a, g(h(z))) …………..  (ii)

Here substitution set will be given by:

{a/x, h(z)/y}

  1. F(a, g(y)) ………….. (i)
  2. F(a, g(h(z)) ………. (ii)
  3. F(x, g(h(z))) ……… (iii)

These all expression are identical on substituting substitution set.

We will take some numerical simple cases where it is possible and not possible to unify two expressions.

Example #1

f(5) ……. (i)

f(x) ……. (ii)

Substitute: {x/5}, Unification is possible.

Example #2

divide(25/x) ……….. (i)

divide(y/5) …………. (ii)

Substitute {y/25 , x/5}, Unification is possible.

Example #3

divide (25/x) ……….. (i)

divide(x/5) ………….(ii)

Substitute {x/25 , x/ 5}, Unification is not possible

Uses of Unification

As we understand unification is used in logical programming. So it is useful is creating logical expressions that are used in type inference, logic programming, order sorting, e -unification, etc.

1. Uses in Logic Programming

The concept of unification we can say is the main idea behind the invent of logic programming. Unification is a binding mechanism which is one time assignment. In logic programming, unification operation is denoted by “ = ” sign or equality sign.

Popular Course in this category
Sale
All in One Software Development Bundle (600+ Courses, 50+ projects)600+ Online Courses | 3000+ Hours | Verifiable Certificates | Lifetime Access
4.6 (3,144 ratings)
Course Price

View Course

Related Courses
Software Testing Training (9 Courses, 2 Projects)Selenium Automation Testing Training (9 Courses, 4+ Projects, 4 Quizzes)Appium Training (2 Courses)JMeter Testing Training (3 Courses)

In logic programming, the condition is that two variables can only be unified if they are identical.

2. Type Inference

Unification can be used for type inference. For example, one expression is given as True : [ ‘P’, ‘Q’, ‘R’] which is of type “Bool”. Now if we use unification substitution of ‘a’ in place of ‘P’, It also must be of the same type. That means if there is another expression that represents the same variables [ ‘P’, ‘Q’, ‘R’] but is of type “Char”. And if tried to substitute ‘a’ in place of ‘P’ type inference will not allow because ‘a’ cannot be substituted to “Bool” as well as “Char”.

3. Order Sorted Unification

Sorting is very important in ordering the things according to one’s choices, but to write logic could be difficult here. For example, we are sorting living creatures. As a sort, we can say a dog is sub sort of sort animal. Now let us say we are defining a relation mother : animal. The name of the mother is ‘Dessie’. A relation can be then said Dessie : dog. It fits better right !. But wait, mother of a dog is also a dog so another relation can also be build which leads to function overloading.

Here unification algorithm is given by Walther which considers intersection to be declared in the algorithm.

Condition for Unification

For a unification to be carried out successfully these following conditions must be satisfied:

  • Arguments in the problem expression should be the same in numbers.

Ψ1 = {f (p, q), and Ψ2 = f (a, g(b))
S0 = {f (p, q), f (a, g(b))}
SUBSTITUTE = {a/p}
S1 => {f (a, q), f (a, f(b))}
SUBSTITUTE = {f(b) / q}

S2 => {f (a, f(b)), f (a, f(b))}, Unified Successfully

  • In an expression there shouldn’t be two similar variables, otherwise, unification will fail.

Ψ1 = {f (a, a), and Ψ2 = f (b, g(b))
S0 = {f (a, a), f (b, f(b))}
SUBSET θ= {a/b}
S1 => {f (b, b), f (Z, f(Z))}
SUBST θ= {f(b) / b}, Unification Failed.

  • The initial predicate symbol in both the expression must be identical.

Why We Need the Unification?

Unification is the most fundamental concept when it comes to logical programming in computer science. In many real time problems, we find rules or operations or equations or some patterns, which are needed to be applied to some sort of data. The unification algorithm plays key role to specialize in the operation or equations or rules to the data. For basic understanding, if there is a need to combine two simple but overlapping equations or rules, by performing substitution we can easily combine them which is nothing but unification.

For any new theorem to be used, it must be proved and checked before implementation. Higher order unification is used in proof assistance and proving Theorems.  As discussed earlier, unification can be used for type inference where we can see that substitution of only the same variable type is possible not on the different type hence it removes redundancy in algorithms. Data types are significantly important in computer science for defining different variables. Unification is an inherent part of algorithms used in Artificial intelligence, Natural language programming, pattern detection, parsing algorithms, etc.

Conclusion

Unification is a basic concept which is linked to logical programming in computer science. Unification is a kind of binding logic generally substitution between two or more variables. The goal of unification is to make two expression look alike. In the above article, we discussed the type of unification, where we unification and conditions for unification. In addition to it we also have explored examples where unification is possible and where unification is not possible. And at last, we also have discussed the need of unification.

Recommended Articles

This is a guide to What is Unification?. Here we also discuss the introduction and uses of unification along with different examples. You may also have a look at the following articles to learn more –

  1. What is Lock Screen?
  2. What is Static Analysis
  3. What is UiPath
  4. What is Intranet?

All in One Software Development Bundle (600+ Courses, 50+ projects)

600+ Online Courses

3000+ Hours

Verifiable Certificates

Lifetime Access

Learn More

0 Shares
Share
Tweet
Share
Primary Sidebar
Software Development Basics
  • Basics
    • Types of Algorithms
    • Vue.js? nextTick
    • Vue.js Transition
    • Page Replacement Algorithms
    • What is CLI
    • Open Source Software
    • Solve Problems With Technology (Simple)
    • What is Application Software & Types
    • SSRS Dashboard
    • SSRS Opinion Panel
    • Microsoft Word Alternative
    • ADDIE Model
    • V-model advantages and disadvantages
    • Gatsby Plugins
    • Putty version
    • Xampp versions
    • Avro converter
    • Entity Framework Core
    • Gulp File Include
    • Gulp Autoprefixer
    • Gulp Terser
    • System Software Tools
    • Typography App
    • Software as a Service (Saas)
    • Icon Font Pack
    • Interpret Results Using ANOVA Test
    • Blogging Insights Your Analytics
    • Increase Productivity Technology
    • Free Multimedia Software
    • Information Technology Benefits
    • What is SPSS and How Does It Work
    • Learn to Code For Beginners (Advance)
    • Uses of Coding
    • Uses Of Raspberry Pi
    • What Is System Design
    • Introduction to NLP
    • What is MapReduce
    • What is SoapUI
    • What is MVC
    • What is Multithreading
    • What is Elasticsearch
    • Elasticsearch Features
    • What is Neural Networks
    • What is Swift
    • What is PLC
    • What is Open Cart
    • What is Mainframe
    • What is JMS
    • What is Cognos
    • What is Open Source
    • What is Bot
    • What is SOAP
    • What is COBOL
    • What is GraphQL
    • What is Microcontroller
    • What is Open-Source License
    • What is Visual Studio Code
    • What is Pandas
    • What is Hypervisor
    • What is Common Gateway Interface
    • What is IDE?
    • What is SSRS?
    • What is MVC Design Pattern
    • What is Application Server
    • What is GPS
    • What is Botnet
    • What is Assembly Language
    • System Analysis And Design
    • HTTP Caching
    • What is Buffer Overflow
    • What is Ajax
    • What is Joomla
    • What is Appium
    • What is SVN
    • What is SPSS
    • What is WCF
    • What is Groovy
    • What is Clickbait
    • What is SOA
    • What is GUI
    • What is FreeBSD
    • What is WebSocket
    • What is WordPress
    • What is OSPF
    • What is Coding
    • What is Raspberry Pi
    • HTTP Cookies
    • What is Hub?
    • What is Bridge
    • What is Switch
    • What is Internet Application
    • What is Sensors
    • What is Proximity Sensors
    • What is Full Stack
    • System Design Interview Questions
    • What is Salesforce technology
    • What is Salesforce Sales Cloud
    • What is OOP
    • What is CMD
    • What is React
    • React Redux Typescript
    • What is DSS
    • What is SVG
    • SVG File
    • Bash Sleep Command
    • What is MTU
    • What is Apex
    • What is Desktop Software
    • Tor Browser, Anonymity and Other Browsers
    • Avoid Pitfalls of Shadow IT
    • Freelance Web Graphic Designer
    • What is Storage Virtualization
    • What is Web Services?
    • What is Social Networking?
    • What is Microservices Architecture?
    • Microservices Tools
    • Advantages of Microservices
    • Uses of Internet
    • Software Platforms
    • Uses of Internet for Business
    • Architecture of Web Services
    • Web Application Testing
    • Advantages of Web Service
    • CPU Virtualization
    • Types of Web Services
    • Web Services Testing
    • What is RabbitMQ?
    • RabbitMQ Architecture
    • Advantages of Bitcoin
    • Penetration Testing Services
    • Puppet Alternatives
    • What is Memcached?
    • What is Browser?
    • Types of Satellites
    • Model Driven Architecture
    • Types of Variables in Statistics
    • Integration Architecture
    • What is API Integration?
    • What is Grid Computing?
    • Asus File Manager
    • What is GPRS?
    • What is Gradle?
    • What is Basecamp?
    • Software System Architecture
    • GSM Architecture
    • What is Nagios?
    • AppDynamics Tool
    • Logical Architecture
    • What is Microsoft Planner
    • What is Circuit Switching
    • What is ARM?
    • Embedded Control Systems
    • Embedded System Programming
    • Embedded System Development
    • Embedded Systems Software
    • Embedded System Project
    • Types of Embedded Systems
    • What is Bitbucket?
    • Requirement Engineering
    • Types of Engineering
    • What is WAP
    • What is Registry?
    • What is Dynatrace?
    • What is Digital Forensics?
    • Hardware Virtualization
    • AppDynamics Careers
    • Bandwidth Monitoring Tools
    • Ping Monitor Tools
    • Dynatrace Tools
    • What is Trello?
    • What is AppDynamics?
    • What is Remote Desktop?
    • What is Extranet?
    • What is LTE Network?
    • What is Firebase?
    • Website Monitoring Tool
    • Number Systems
    • Service Desk Manager
    • Static Website
    • Dynamic Website
    • What is Email?
    • What is URL Link?
    • What is Program?
    • What is Lock Screen?
    • What is Grafana
    • Unguided Media Transmission
    • IT Governance
    • IT Governance Framework
    • Remote Support Softwares
    • What is Unification?
    • Topological Map
    • What is LAMP?
    • USB Flash Drive
    • Software Development Models
    • Digital Circuit
    • What is Webpack?
    • Fault Tolerance
    • What is DSL Modem?
    • What is Mozilla Firefox?
    • What is Vagrant?
    • Types of Research Methodology
    • Grafana Plugins
    • Ionic Components
    • Nginx Version
    • RabbitMQ Routing Key
    • CakePHP
    • Telegram Features
    • What is CDN
    • RethinkDB
    • Symfony Version
    • UWP
    • cPanel version
    • What is assembly?
    • Seed7
    • Switching Techniques
    • OCaml
    • Pseudocode?Algorithm
    • Quality Control Methods
    • What is OneNote?
    • Workstation Uses
    • Soft Computing Techniques
    • Remote Access Software
    • Remote Desktop Tools
    • OneNote Shortcuts
    • Software Review
    • What is Qubit?
    • Static Analysis Tools
    • Register in Microprocessor
    • What is VDI?
    • What is Svelte?
    • RabbitMQ Version
    • Groovy Version
    • Code Walkthrough
    • What is Telegram?
    • Gradle Version
    • What is Recycle Bin?
    • What is Cordova?
    • Swagger version
    • Doxygen
    • Phalcon
    • Metasploit Framework
    • Microsoft Word Shortcut Keys
    • Wordpad shortcut keys
    • Burp Suite
    • Google Docs Shortcuts
    • Install VPN
    • Frontend Challenges
    • CodeIgniter Version
    • VMware Tools
    • CDMA Advantages
    • CDMA Uses
    • Servlet Session Management
    • Log4j Version
    • Remote Desktop Softwares
    • Soapui Load Test
    • Scikit Learn Version
    • VMware Benefits
    • Google Slides Shortcuts
    • What is XAMPP?
    • What is PyGTK?
    • VMware Fusion
    • What is cPanel?
    • Ubuntu Version
    • Server Types
    • App Analytics Tools
    • DNS Types
    • Evernote Features
    • Restful architecture
    • GNOME Keyboard Shortcuts
    • AngelScript
    • NativeScript Layouts
    • PowerPoint Version
    • setInterval Function
    • Shopify Apps
    • TypeScript foreach loop
    • Socio Technical System
    • PowerPoint Shortcut Keys
    • Civil Engineering Tools
    • OpenLayers vs Leaflet
    • Circuit Switching Advantages and Disadvantages
    • LotusScript
    • Multiplexer
    • Types of Broadband
    • What is Standardization
    • Methods of Development
    • Software Requirement Specification
    • CentOS restart network
    • Bouncy numbers
    • Burp suite proxy
    • Redshift window functions
    • Mesh Topology Advantages and Disadvantages
    • What is Zabbix?
    • Test Techniques
    • Test Development
    • What is PyCharm
    • What is REST
    • JDBC version
    • System software features
    • Ableton versions
    • Unreal engine version
    • RAD advantage disadvantage
    • Incremental Model Advantage and Disadvantage
    • Disadvantages of Internet
    • What is VoIP
    • WAP Architecture
    • CentOS unzip
    • Cubase Shortcuts
    • Cubase Versions
    • Libreoffice shortcut keys
    • Archiving Software
    • Layered Architecture
    • Coverage Types
    • What is Kivy?
    • Types of Methodology
    • Swift JSON
    • JSON Serialize
    • TypeScript?boolean
    • TypeScript keyof object
    • TypeScript RegEx
    • TypeScript?date
    • TypeScript object
    • CentOS Version
    • XSLT if else
    • Binary Search JavaScript
    • Binary search with recursion
    • Bitbucket Pull Request
    • Bitbucket Add SSH Key
    • Bitbucket Jenkins
    • PLSQL Replace
    • Evernote Notes
    • Rust vs Python
    • Test Scenario
    • Deadlock in Operating System
    • MVVM Architecture
    • What is Keyboard
    • WordPress Hosting
    • Software requirement
    • CentOS Add User to Group
    • Backup Types
    • Firewall Rules
    • Microprocessor Features
    • Maven Versions
    • OneNote features
    • Binary search tree insertion
    • Quick sort algorithm
    • B+ tree insertion
    • What is Automation?
    • What is Digital Electronics?
    • Wireless Transmission Media
    • Border Gateway Protocol
    • Email Encryption Software
    • Endpoint Encryption
    • Outlook Alternative
    • What is Abacus
    • Encapsulation Benefits
    • FL Studio Keyboard Shortcuts
    • NordVPN Features
    • Statsmodels API
    • Statsmodels Linear Regression
    • Buzz number
    • Krishnamurthy Number
    • What is Compact Disc?
    • Bucket Sort Algorithm
    • Insertion Sort Algorithm
    • Redis Version
    • Chatbot Benefits
    • Full Stack Technologies
    • Civil Engineering Types
    • Tomcat Web Server
    • Bitbucket Branching Strategy
    • Anaconda Navigator
    • UML Class Diagram
    • System Monitoring Tool
    • Drupal Features
    • System Software Functions

Related Courses

Software Testing Training

Selenium Training Certification

Appium Training

JMeter Certification Training

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Live Classes
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2022 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

By signing up, you agree to our Terms of Use and Privacy Policy.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

By signing up, you agree to our Terms of Use and Privacy Policy.

Let’s Get Started

By signing up, you agree to our Terms of Use and Privacy Policy.

Loading . . .
Quiz
Question:

Answer:

Quiz Result
Total QuestionsCorrect AnswersWrong AnswersPercentage

Explore 1000+ varieties of Mock tests View more

EDUCBA Login

Forgot Password?

By signing up, you agree to our Terms of Use and Privacy Policy.

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you

By signing up, you agree to our Terms of Use and Privacy Policy.

Special Offer - All in One Software Development Bundle (600+ Courses, 50+ projects) Learn More