Nested Hoare Triples and Frame Rules for Higher-order Store
Nested Hoare Triples and Frame Rules for Higher-order Store
Nested Hoare Triples and Frame Rules for Higher-order Store
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
A.4 RecursionTheorem 35 (Mutually recursive predicates). Suppose that <strong>for</strong> each i ∈I, F i : Pred I → Pred is a contractive function. Then there exists a uniquep = (p i ) i∈I ∈ Pred I such that F i (p) = p i <strong>for</strong> all i ∈ I.Proof. Recall that Pred I is an ultrametric space, with distance function d(p, q) =sup i d Pred (p i , q i ) <strong>for</strong> p = (p i ) i∈I <strong>and</strong> q = (q i ) i∈I in Pred I . By assumption, eachF i is contractive. In particular, since all distances in Pred are of the <strong>for</strong>m 2 −n ,we have d Pred (F i (p), F i (q)) ≤ 1 2 · d(p, q). Then F : PredI → Pred I given byF (p) = (F i (p)) i∈I is a contractive endofunction on this ultrametric space, whichby the Banach fixed point theorem has a unique fixed point p, satisfying p i =(F (p)) i = F i (p). ⊓⊔