CSc 520 - Principles of Programming Languages
43 : Logic Programming -- Prolog Unification

Christian Collberg

Department of Computer Science

University of Arizona

1 Unification & Matching

2 Matching Examples

The rule:

The goal:

3 Matching Examples...



4 Matching Algorithm

Can two terms and be ``made identical,'' by assigning values to their variables?

Two terms and match if

  1. they are identical atoms
  2. one or both are uninstantiated variables
  3. they are terms and , and
    1. the arities are the same ()
    2. the functors are the same ()
    3. the arguments match ( )

5 Matching - Examples

variable subst.
a a yes  
a b no  
sin(X) sin(a) yes
sin(a) sin(X) yes
cos(X) sin(a) no  
sin(X) sin(cos(a)) yes

6 Matching - Examples...

variable subst.
likes(c, X) likes(a, X) no  
likes(c, X) likes(c, Y) yes
likes(X, X) likes(c, Y) yes
likes(X, X) likes(c, _) yes
likes(c, a(X)) likes(V, Z) yes
likes(X, a(X)) likes(c, Z) yes

7 Matching Consequences

Consequences of Prolog Matching:

8 Matching Algorithm



9 Visualizing Matching

10 Visualizing Matching...

Matching1A

11 Visualizing Matching...

12 Visualizing Matching...

Matching1B

13 Visualizing Matching...

14 Visualizing Matching...

Matching1C

15 Visualizing Matching...

16 Visualizing Matching...

Matching1D

17 Readings and References

18 Prolog So Far...



Christian Collberg 2008-04-23