An abstract axiomatization of pointer types

Pointer ('reference' or 'access') types are extremely useful in programming, but are usually considered rather intractable in the context of formal verification. The author deals with this problem using the concept of collections and access types. He gives two examples of how this can be done. One approach, using the axiomatic method of J.V. Guttag and V. Horning (1978), is too specific, resulting in distinct semantics of program constructs that would be considered equivalent in most programming languages. The problem is addressed in a second axiomatization method, which reduces the expressiveness of the annotation language by reducing the number of operators on access values. A reinterpretation of the allocation operator in the programming language then gives the desired proof strength, but with a higher level of abstraction than in the standard formalization. Verification of a package defining a set type is given as an example.<<ETX>>