Question: THE PROGRAM SHOULD FOLLOW SAMPLE OUTPUT. IT SHOULD RUN WITH NO ERRORS (IF CLASSES ARE USED PLEASE INCLUDE THEIR CODE AS WELL) Write a program

 THE PROGRAM SHOULD FOLLOW SAMPLE OUTPUT. IT SHOULD RUN WITH NOERRORS (IF CLASSES ARE USED PLEASE INCLUDE THEIR CODE AS WELL) Write

THE PROGRAM SHOULD FOLLOW SAMPLE OUTPUT. IT SHOULD RUN WITH NO ERRORS (IF CLASSES ARE USED PLEASE INCLUDE THEIR CODE AS WELL)

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 algorithm. Please enter the first term: a Please enter the second term: X The unifier is: X=a Please enter the first term: X Please enter the second term: Y The unifier is: Y=X Please enter the first term: X Please enter the second term: f(Y) The unifier is: X=f(Y) Please enter the first term: X Please enter the second term: h(a,Y) The unifier is: X=h(a,Y) Please enter the first term: f(f(X,Y),X) Please enter the second term: f(f(V,U),g(U,Y)) The unifier is: X=V,Y=U,V=g(U,U)

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!