src/ZF/ex/Commutation.thy
author wenzelm
Thu, 15 Feb 2001 17:18:54 +0100
changeset 11145 3e47692e3a3e
parent 11042 bb566dd3f927
child 11316 b4e71bd751e4
permissions -rw-r--r--
eliminate get_def;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11042
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
     1
(*  Title:      HOL/Lambda/Commutation.thy
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
     2
    ID:         $Id$
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
     3
    Author:     Tobias Nipkow & Sidi Ould Ehmety
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
     4
    Copyright   1995  TU Muenchen
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
     5
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
     6
Commutation theory for proving the Church Rosser theorem
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
     7
	ported from Isabelle/HOL  by Sidi Ould Ehmety
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
     8
*)
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
     9
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    10
Commutation = Main +    
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    11
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    12
constdefs
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    13
  square  :: [i, i, i, i] => o
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    14
   "square(r,s,t,u) ==
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    15
   (ALL a b. <a,b>:r --> (ALL c. <a, c>:s
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    16
                          --> (EX x. <b,x>:t & <c,x>:u)))"
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    17
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    18
   commute :: [i, i] => o       
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    19
   "commute(r,s) == square(r,s,s,r)"
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    20
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    21
  diamond :: i=>o
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    22
  "diamond(r)   == commute(r, r)"
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    23
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    24
  strip :: i=>o  
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    25
  "strip(r) == commute(r^*, r)"
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    26
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    27
  Church_Rosser :: i => o     
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    28
  "Church_Rosser(r) == (ALL x y. <x,y>: (r Un converse(r))^* -->
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    29
			(EX z. <x,z>:r^* & <y,z>:r^*))"
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    30
  confluent :: i=>o    
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    31
  "confluent(r) == diamond(r^*)"
bb566dd3f927 commutation theory, ported by Sidi Ehmety
paulson
parents:
diff changeset
    32
end