src/HOL/Subst/Unifier.thy
author kleing
Mon, 19 Apr 2004 09:31:00 +0200
changeset 14626 dfb8d2977263
parent 3268 012c43174664
child 15635 8408a06590a6
permissions -rw-r--r--
renamed HOL-Import-HOL to HOL4, added to images target
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
608483c2122a expanded tabs; incorporated Konrad's changes
clasohm
parents: 1374
diff changeset
     3
    Author:     Martin Coen, Cambridge University Computer Laboratory
968
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
     4
    Copyright   1993  University of Cambridge
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
     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
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
     7
*)
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
     8
3192
a75558a4ed37 New version, modified by Konrad Slind and LCP for TFL
paulson
parents: 1476
diff changeset
     9
Unifier = Subst + 
968
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    10
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    11
consts
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    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
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    17
3192
a75558a4ed37 New version, modified by Konrad Slind and LCP for TFL
paulson
parents: 1476
diff changeset
    18
defs
968
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    19
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    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
c820b3cc3df0 removed \...\ inside strings
clasohm
parents: 968
diff changeset
    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
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    25
end