src/ZF/IMP/Denotation.thy
changeset 1155 928a16e02f9f
parent 753 ec86863e87c8
child 1401 0c439768f45c
equal deleted inserted replaced
1154:bc295e3dc078 1155:928a16e02f9f
    29   B_not_def	"B(noti(b)) == (%sigma. not(B(b,sigma)))"
    29   B_not_def	"B(noti(b)) == (%sigma. not(B(b,sigma)))"
    30   B_and_def	"B(b0 andi b1) == (%sigma. B(b0,sigma) and B(b1,sigma))"
    30   B_and_def	"B(b0 andi b1) == (%sigma. B(b0,sigma) and B(b1,sigma))"
    31   B_or_def	"B(b0 ori b1) == (%sigma. B(b0,sigma) or B(b1,sigma))"
    31   B_or_def	"B(b0 ori b1) == (%sigma. B(b0,sigma) or B(b1,sigma))"
    32 
    32 
    33   C_skip_def	"C(skip) == id(loc->nat)"
    33   C_skip_def	"C(skip) == id(loc->nat)"
    34   C_assign_def	"C(x := a) == {io:(loc->nat)*(loc->nat). \
    34   C_assign_def	"C(x := a) == {io:(loc->nat)*(loc->nat). 
    35 \			       snd(io) = fst(io)[A(a,fst(io))/x]}"
    35 			       snd(io) = fst(io)[A(a,fst(io))/x]}"
    36 
    36 
    37   C_comp_def	"C(c0 ; c1) == C(c1) O C(c0)"
    37   C_comp_def	"C(c0 ; c1) == C(c1) O C(c0)"
    38   C_if_def	"C(ifc b then c0 else c1) == {io:C(c0). B(b,fst(io))=1} Un \
    38   C_if_def	"C(ifc b then c0 else c1) == {io:C(c0). B(b,fst(io))=1} Un 
    39 \			 	             {io:C(c1). B(b,fst(io))=0}"
    39 			 	             {io:C(c1). B(b,fst(io))=0}"
    40 
    40 
    41   Gamma_def	"Gamma(b,c) == (%phi.{io : (phi O C(c)). B(b,fst(io))=1} Un \
    41   Gamma_def	"Gamma(b,c) == (%phi.{io : (phi O C(c)). B(b,fst(io))=1} Un 
    42 \			 	     {io : id(loc->nat). B(b,fst(io))=0})"
    42 			 	     {io : id(loc->nat). B(b,fst(io))=0})"
    43 
    43 
    44   C_while_def	"C(while b do c) == lfp((loc->nat)*(loc->nat), Gamma(b,c))"
    44   C_while_def	"C(while b do c) == lfp((loc->nat)*(loc->nat), Gamma(b,c))"
    45 
    45 
    46 end
    46 end