(*
Author : Norbert Schirmer
Maintainer : Norbert Schirmer , norbert . schirmer at web de
Copyright ( C ) 2006 - 2008 Norbert Schirmer
*)
(*<*)
theory SyntaxTest imports HeapList Vcg begin
record "globals" =
alloc_' :: "ref list"
free_':: nat
GA_' :: "ref list list"
next_' :: "ref ==> ref"
cont_' :: "ref ==> nat"
record 'g vars = "'g state" +
A_' :: "nat list"
AA_' :: "nat list list"
I_' :: nat
M_' :: nat
N_' :: nat
R_' :: int
S_' :: int
B_' :: bool
Abr_':: string
p_' :: ref
q_' :: ref
procedures Foo (p,I|p) = "π p :== π p"
term "π I :==g 3 - 1"
term "π R :==g 3 - 1"
term "π I :==g π A!i"
term " π A!i :== j"
term " π AA :== π AA!![i,j]"
term " π AA!![i,j] :== π AA"
term "π A!i :==g j"
term "π p :==g π GA!i!j"
term "π GA!i!j :==g π p"
term "π p :==g π p → π next"
term "π p → π next :==g π p"
term "π p → π next → π next :==g π p"
term "π p :== NEW sz [π next :== Null,π cont :== 0]"
term "π p→ π next :==g NEW sz [π next :== Null,π cont :== 0]"
term "π p :== NNEW sz [π next :== Null,π cont :== 0]"
term "π p→ π next :==g NNEW sz [π next :== Null,π cont :== 0]"
term "π B :==g π N + 1 < 0 β§ π M + π N < n"
term "π B :==g π N + 1 < 0 β¨ π M + π N < n"
term "π I :==g π N mod n"
term "π I :==g π N div n"
term "π R :==g π R div n"
term "π R :==g π R mod n"
term "π R :==g π R * n"
term "π I :==g π I - π N"
term "π R :==g π R - π S"
term "π R :==g int π I"
term "π I :==g nat π R"
term "π R :==g -π R"
term "IFg π A!i < π N THEN c1 ELSE c2 FI"
term "WHILEg π A!i < π N DO c OD"
term "WHILEg π A!i < π N INV { foo} DO c OD"
term "WHILEg π A!i < π N INV { foo} VAR bar x DO c OD"
term "WHILEg π A!i < π N INV { foo} VAR bar x DO c OD;;c"
term "c;;WHILEg π A!i < π N INV { foo} VAR MEASURE π N + π M DO c;;c OD;;c"
context Foo_impl
begin
term "π q :== CALL Foo(π p,π M)"
term "π q :== CALLg Foo(π p,π M + 1)"
term "π q :== CALL Foo(π p→ π next,π M)"
term "π q → π next :== CALL Foo(π p,π M)"
end
end
(*>*)
Messung V0.5 in Prozent C=80 H=95 G=87
Β€ Dauer der Verarbeitung: 0.3 Sekunden
Β€
*© Formatika GbR, Deutschland