Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Hello, Please stop copy pasting previous answers. They are wrong and not the correct implementation as for the inputs they show wrong outputs. I am

Hello, Please stop copy pasting previous answers. They are wrong and not the correct implementation as for the inputs they show wrong outputs. I am posting this again. If you don't know then don't answer.

Here the question asks to check unification in a particular way. I am looking for the implementation in that way. Please also show the output after you run the inputs as given on examples.

image text in transcribedimage text in transcribed

Write a program in C++ that implements the following unification algorithm. Unify(E1,E2) If ( both E1 and E2 are constant or empty ) \{ If ( E1=E2 ), then return \{\} Else return FAIL \} If ( E1 is a variable ) \{ If E1 occurs in E2, then return FAIL Else return {E2/E1} \} If ( E2 is variable ) \{ If E2 occurs in E1, then return FAIL Else return {E1/E2} \} If ( E1 or E2 is empty ), then return FAIL HE1 = first element of E1 HE2 = first element of E2 SUBS1 = unify (HE1, HE2) If (SUBS1 = FAIL) then return FAIL TE1 = apply SUBS1 to rest of E1 TE2 = apply SUBS1 to rest of E2 SUBS2 = unify (TE1,TE2) If (SUBS2 = FAIL) then return FAIL Else return composition(SUBS1, SUBS2) E1 and E2 are two terms where variables start with upper case letters and function/constant symbols start with lower case letters. You need to consider "Occur Check". Example This is an implementation of the unification algonithm. Flease enter the first term: a Flease enter the second terme x The unifier is: X=a Flease enter the first term: X Flease enter the second tenem y The unifier is: Y=X Flease enter the first term: X Flease enter the second terme I[Y] The unifise is: X=f(y) Flease enter the first term: X Flease enter the socond terme m/2,Y The unifiar is: x=h(a,) Please enter the first term: f(flX, YuX Flease enter the second terenc fff(V,U), [U,Y] The unifise is: X=V,Y=U,V=e[U,U) Flease enter the first term: f(IIX, Y,XS) Fhezse enter the second terme ff[f,U, U.g[U,F)] The unifise is: Invalid Please enter the first term: X Fhease enter the second terme fx The unifier is: there is no unifier

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Essentials of Database Management

Authors: Jeffrey A. Hoffer, Heikki Topi, Ramesh Venkataraman

1st edition

133405680, 9780133547702 , 978-0133405682

More Books

Students also viewed these Databases questions