diff -r 4939494ed791 -r ce654b0e6d69 src/HOL/Hoare/Pointer_Examples.thy --- a/src/HOL/Hoare/Pointer_Examples.thy Tue Feb 13 14:24:50 2018 +0100 +++ b/src/HOL/Hoare/Pointer_Examples.thy Thu Feb 15 12:11:00 2018 +0100 @@ -148,9 +148,9 @@ first version uses a relation on @{typ"'a ref"}:\ lemma "VARS tl p - {(p,X) \ {(Ref x,tl x) |x. True}^*} + {(p,X) \ {(Ref x,tl x) |x. True}\<^sup>*} WHILE p \ Null \ p \ X - INV {(p,X) \ {(Ref x,tl x) |x. True}^*} + INV {(p,X) \ {(Ref x,tl x) |x. True}\<^sup>*} DO p := p^.tl OD {p = X}" apply vcg_simp @@ -164,9 +164,9 @@ text\Finally, a version based on a relation on type @{typ 'a}:\ lemma "VARS tl p - {p \ Null \ (addr p,X) \ {(x,y). tl x = Ref y}^*} + {p \ Null \ (addr p,X) \ {(x,y). tl x = Ref y}\<^sup>*} WHILE p \ Null \ p \ Ref X - INV {p \ Null \ (addr p,X) \ {(x,y). tl x = Ref y}^*} + INV {p \ Null \ (addr p,X) \ {(x,y). tl x = Ref y}\<^sup>*} DO p := p^.tl OD {p = Ref X}" apply vcg_simp @@ -241,7 +241,7 @@ THEN r := p; p := p^.tl ELSE r := q; q := q^.tl FI; s := r; WHILE p \ Null \ q \ Null - INV {EX rs ps qs a. Path tl r rs s \ List tl p ps \ List tl q qs \ + INV {\rs ps qs a. Path tl r rs s \ List tl p ps \ List tl q qs \ distinct(a # ps @ qs @ rs) \ s = Ref a \ merge(Ps,Qs,\x y. hd x \ hd y) = rs @ a # merge(ps,qs,\x y. hd x \ hd y) \ @@ -367,15 +367,15 @@ by (rule unproven) lemma "VARS hd tl p q r s - {islist tl p & Ps = list tl p \ islist tl q & Qs = list tl q \ + {islist tl p \ Ps = list tl p \ islist tl q \ Qs = list tl q \ set Ps \ set Qs = {} \ (p \ Null \ q \ Null)} IF cor (q = Null) (cand (p \ Null) (p^.hd \ q^.hd)) THEN r := p; p := p^.tl ELSE r := q; q := q^.tl FI; s := r; WHILE p \ Null \ q \ Null - INV {EX rs ps qs a. ispath tl r s & rs = path tl r s \ - islist tl p & ps = list tl p \ islist tl q & qs = list tl q \ + INV {\rs ps qs a. ispath tl r s \ rs = path tl r s \ + islist tl p \ ps = list tl p \ islist tl q \ qs = list tl q \ distinct(a # ps @ qs @ rs) \ s = Ref a \ merge(Ps,Qs,\x y. hd x \ hd y) = rs @ a # merge(ps,qs,\x y. hd x \ hd y) \