src/HOL/Subst/Subst.thy
author clasohm
Wed, 21 Jun 1995 15:47:10 +0200
changeset 1151 c820b3cc3df0
parent 972 e61b058d58d2
child 1266 3ae9fe3c0f68
permissions -rw-r--r--
removed \...\ inside strings
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
968
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
     1
(*  Title: 	Substitutions/subst.thy
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
     2
    Author: 	Martin Coen, Cambridge University Computer Laboratory
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
     3
    Copyright   1993  University of Cambridge
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
     4
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
     5
Substitutions on uterms
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
     6
*)
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
     7
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
     8
Subst = Setplus + AList + UTLemmas +
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
     9
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    10
consts
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    11
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    12
  "=s="  ::  "[('a*('a uterm)) list,('a*('a uterm)) list] => bool" (infixr 52)
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    13
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    14
  "<|"   ::  "['a uterm,('a*('a uterm)) list] => 'a uterm"         (infixl 55)
1151
c820b3cc3df0 removed \...\ inside strings
clasohm
parents: 972
diff changeset
    15
  "<>"   ::  "[('a*('a uterm)) list, ('a*('a uterm)) list] => 
c820b3cc3df0 removed \...\ inside strings
clasohm
parents: 972
diff changeset
    16
                                    ('a*('a uterm)) list"         (infixl 56)
968
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    17
  sdom   ::  "('a*('a uterm)) list => 'a set"
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    18
  srange ::  "('a*('a uterm)) list => 'a set"
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    19
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    20
rules 
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    21
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    22
  subst_eq_def  "r =s= s == ALL t.t <| r = t <| s"
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    23
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    24
  subst_def    
1151
c820b3cc3df0 removed \...\ inside strings
clasohm
parents: 972
diff changeset
    25
  "t <| al == uterm_rec t (%x.assoc x (Var x) al)	
c820b3cc3df0 removed \...\ inside strings
clasohm
parents: 972
diff changeset
    26
                         (%x.Const(x))			
c820b3cc3df0 removed \...\ inside strings
clasohm
parents: 972
diff changeset
    27
                         (%u v q r.Comb q r)"
968
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    28
972
e61b058d58d2 changed syntax of tuples from <..., ...> to (..., ...)
clasohm
parents: 968
diff changeset
    29
  comp_def     "al <> bl == alist_rec al bl (%x y xs g.(x,y <| bl)#g)"
968
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    30
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    31
  sdom_def
1151
c820b3cc3df0 removed \...\ inside strings
clasohm
parents: 972
diff changeset
    32
  "sdom(al) == alist_rec al {}  
c820b3cc3df0 removed \...\ inside strings
clasohm
parents: 972
diff changeset
    33
                (%x y xs g.if Var(x)=y then g Int Compl({x}) else g Un {x})"
968
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    34
  srange_def   
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    35
  "srange(al) == Union({y. EX x:sdom(al).y=vars_of(Var(x) <| al)})"
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    36
3cdaa8724175 converted Subst with curried function application
clasohm
parents:
diff changeset
    37
end