| author | paulson | 
| Mon, 26 May 1997 12:29:55 +0200 | |
| changeset 3333 | 0bbf06e86c06 | 
| parent 3268 | 012c43174664 | 
| child 15635 | 8408a06590a6 | 
| permissions | -rw-r--r-- | 
| 
3268
 
012c43174664
Mostly cosmetic changes: updated headers, ID lines, etc.
 
paulson 
parents: 
3192 
diff
changeset
 | 
1  | 
(* Title: Subst/Unifier.thy  | 
| 
 
012c43174664
Mostly cosmetic changes: updated headers, ID lines, etc.
 
paulson 
parents: 
3192 
diff
changeset
 | 
2  | 
ID: $Id$  | 
| 1476 | 3  | 
Author: Martin Coen, Cambridge University Computer Laboratory  | 
| 968 | 4  | 
Copyright 1993 University of Cambridge  | 
5  | 
||
| 
3192
 
a75558a4ed37
New version, modified by Konrad Slind and LCP for TFL
 
paulson 
parents: 
1476 
diff
changeset
 | 
6  | 
Definition of most general unifier  | 
| 968 | 7  | 
*)  | 
8  | 
||
| 
3192
 
a75558a4ed37
New version, modified by Konrad Slind and LCP for TFL
 
paulson 
parents: 
1476 
diff
changeset
 | 
9  | 
Unifier = Subst +  | 
| 968 | 10  | 
|
11  | 
consts  | 
|
12  | 
||
| 
3192
 
a75558a4ed37
New version, modified by Konrad Slind and LCP for TFL
 
paulson 
parents: 
1476 
diff
changeset
 | 
13  | 
  Unifier   :: "[('a * 'a uterm)list, 'a uterm, 'a uterm] => bool"
 | 
| 
 
a75558a4ed37
New version, modified by Konrad Slind and LCP for TFL
 
paulson 
parents: 
1476 
diff
changeset
 | 
14  | 
  ">>"      :: "[('a * 'a uterm)list, ('a * 'a uterm)list] => bool" (infixr 52)
 | 
| 
 
a75558a4ed37
New version, modified by Konrad Slind and LCP for TFL
 
paulson 
parents: 
1476 
diff
changeset
 | 
15  | 
  MGUnifier :: "[('a * 'a uterm)list, 'a uterm, 'a uterm] => bool"
 | 
| 
 
a75558a4ed37
New version, modified by Konrad Slind and LCP for TFL
 
paulson 
parents: 
1476 
diff
changeset
 | 
16  | 
  Idem      :: "('a * 'a uterm)list => bool"
 | 
| 968 | 17  | 
|
| 
3192
 
a75558a4ed37
New version, modified by Konrad Slind and LCP for TFL
 
paulson 
parents: 
1476 
diff
changeset
 | 
18  | 
defs  | 
| 968 | 19  | 
|
20  | 
Unifier_def "Unifier s t u == t <| s = u <| s"  | 
|
| 
3192
 
a75558a4ed37
New version, modified by Konrad Slind and LCP for TFL
 
paulson 
parents: 
1476 
diff
changeset
 | 
21  | 
MoreGeneral_def "r >> s == ? q. s =$= r <> q"  | 
| 1151 | 22  | 
MGUnifier_def "MGUnifier s t u == Unifier s t u &  | 
| 
3192
 
a75558a4ed37
New version, modified by Konrad Slind and LCP for TFL
 
paulson 
parents: 
1476 
diff
changeset
 | 
23  | 
(!r. Unifier r t u --> s >> r)"  | 
| 
 
a75558a4ed37
New version, modified by Konrad Slind and LCP for TFL
 
paulson 
parents: 
1476 
diff
changeset
 | 
24  | 
Idem_def "Idem(s) == (s <> s) =$= s"  | 
| 968 | 25  | 
end  |