src/ZF/ex/Commutation.thy
changeset 11316 b4e71bd751e4
parent 11042 bb566dd3f927
child 12867 5c900a821a7c
equal deleted inserted replaced
11315:fbca0f74bcef 11316:b4e71bd751e4
    10 Commutation = Main +    
    10 Commutation = Main +    
    11 
    11 
    12 constdefs
    12 constdefs
    13   square  :: [i, i, i, i] => o
    13   square  :: [i, i, i, i] => o
    14    "square(r,s,t,u) ==
    14    "square(r,s,t,u) ==
    15    (ALL a b. <a,b>:r --> (ALL c. <a, c>:s
    15    (\\<forall>a b. <a,b>:r --> (\\<forall>c. <a, c>:s
    16                           --> (EX x. <b,x>:t & <c,x>:u)))"
    16                           --> (\\<exists>x. <b,x>:t & <c,x>:u)))"
    17 
    17 
    18    commute :: [i, i] => o       
    18    commute :: [i, i] => o       
    19    "commute(r,s) == square(r,s,s,r)"
    19    "commute(r,s) == square(r,s,s,r)"
    20 
    20 
    21   diamond :: i=>o
    21   diamond :: i=>o
    23 
    23 
    24   strip :: i=>o  
    24   strip :: i=>o  
    25   "strip(r) == commute(r^*, r)"
    25   "strip(r) == commute(r^*, r)"
    26 
    26 
    27   Church_Rosser :: i => o     
    27   Church_Rosser :: i => o     
    28   "Church_Rosser(r) == (ALL x y. <x,y>: (r Un converse(r))^* -->
    28   "Church_Rosser(r) == (\\<forall>x y. <x,y>: (r Un converse(r))^* -->
    29 			(EX z. <x,z>:r^* & <y,z>:r^*))"
    29 			(\\<exists>z. <x,z>:r^* & <y,z>:r^*))"
    30   confluent :: i=>o    
    30   confluent :: i=>o    
    31   "confluent(r) == diamond(r^*)"
    31   "confluent(r) == diamond(r^*)"
    32 end          
    32 end