src/HOL/IOA/ABP/Correctness.thy
changeset 1476 608483c2122a
parent 1376 92f83b9d17e1
equal deleted inserted replaced
1475:7f5a4cd08209 1476:608483c2122a
    18   
    18   
    19 primrec
    19 primrec
    20   reduce List.list  
    20   reduce List.list  
    21   reduce_Nil  "reduce [] = []"
    21   reduce_Nil  "reduce [] = []"
    22   reduce_Cons "reduce(x#xs) =   
    22   reduce_Cons "reduce(x#xs) =   
    23 	         (case xs of   
    23                  (case xs of   
    24 	             [] => [x]   
    24                      [] => [x]   
    25 	       |   y#ys => (if (x=y)   
    25                |   y#ys => (if (x=y)   
    26 	                      then reduce xs   
    26                               then reduce xs   
    27 	                      else (x#(reduce xs))))"
    27                               else (x#(reduce xs))))"
    28 
    28 
    29   
    29   
    30 defs
    30 defs
    31   
    31   
    32 system_def
    32 system_def
    34 
    34 
    35 system_fin_def
    35 system_fin_def
    36   "system_fin_ioa == (env_ioa || impl_fin_ioa)"
    36   "system_fin_ioa == (env_ioa || impl_fin_ioa)"
    37   
    37   
    38 abs_def "abs  ==   
    38 abs_def "abs  ==   
    39 	(%p.(fst(p),(fst(snd(p)),(fst(snd(snd(p))),   
    39         (%p.(fst(p),(fst(snd(p)),(fst(snd(snd(p))),   
    40 	 (reduce(fst(snd(snd(snd(p))))),reduce(snd(snd(snd(snd(p))))))))))"
    40          (reduce(fst(snd(snd(snd(p))))),reduce(snd(snd(snd(snd(p))))))))))"
    41 
    41 
    42 rules
    42 rules
    43 
    43 
    44   sys_IOA     "IOA system_ioa"
    44   sys_IOA     "IOA system_ioa"
    45   sys_fin_IOA "IOA system_fin_ioa"
    45   sys_fin_IOA "IOA system_fin_ioa"