src/HOLCF/IOA/ABP/Correctness.thy
author wenzelm
Sat, 20 May 2006 23:36:59 +0200
changeset 19689 a3a8594e19b4
parent 17244 0b2ff9541727
child 19738 1ac610922636
permissions -rw-r--r--
abs: precise typing;
     1 (*  Title:      HOLCF/IOA/ABP/Correctness.thy
     2     ID:         $Id$
     3     Author:     Olaf Müller
     4 *)
     5 
     6 header {* The main correctness proof: System_fin implements System *}
     7 
     8 theory Correctness
     9 imports IOA Env Impl Impl_finite
    10 begin
    11 
    12 consts
    13   reduce         :: "'a list => 'a list"
    14 primrec
    15   reduce_Nil:  "reduce [] = []"
    16   reduce_Cons: "reduce(x#xs) =
    17                  (case xs of
    18                      [] => [x]
    19                |   y#ys => (if (x=y)
    20                               then reduce xs
    21                               else (x#(reduce xs))))"
    22 
    23 constdefs
    24   abs where
    25     "abs  ==
    26       (%p.(fst(p),(fst(snd(p)),(fst(snd(snd(p))),
    27        (reduce(fst(snd(snd(snd(p))))),reduce(snd(snd(snd(snd(p))))))))))"
    28 
    29   system_ioa       :: "('m action, bool * 'm impl_state)ioa"
    30   "system_ioa == (env_ioa || impl_ioa)"
    31 
    32   system_fin_ioa   :: "('m action, bool * 'm impl_state)ioa"
    33   "system_fin_ioa == (env_ioa || impl_fin_ioa)"
    34 
    35 
    36 axioms
    37 
    38   sys_IOA:     "IOA system_ioa"
    39   sys_fin_IOA: "IOA system_fin_ioa"
    40 
    41 ML {* use_legacy_bindings (the_context ()) *}
    42 
    43 end