[Imprint][Data Privacy Statement][E-Mail]

Back to main index. View the specification. View theorem base summary, View theorem base listing, the used properties by spec, the dependency list, the symbol table,

Theorem base for Specification heap

This is a listing of all goals defined over the current specification. Axioms are marked yellow, proved theorems green and unproved theorems blue. Click on individual names to get more information on the proof.

Name: Sequent: Type:
diff-writer ∈ h1 ⊦ h0 \ h1[r, o] = h0 \ h1 An Axiom
sw-putr0 ∈ h, r1 ∈ h ⊦ r0 ≠ r1 → h[r0, o0][r1, o1] = h[r1, o1][r0, o0] A User Theorem
disj ⊦ h0 ⊥ h1 ↔ (∀ r. ¬ r ∈ h0 ∨ ¬ r ∈ h1) An Axiom
alloc-writer ≠ null, ¬ r ∈ h, r0 ∈ h ⊦ (h ++ r)[r0, o0][r, o] = (h[r0, o0] ++ r)[r, o] A User Theorem
del-sw ⊦ h -- r -- r0 = h -- r0 -- r A User Theorem
disj-rem ⊦ h0 ⊥ h1 → h0 -- r ⊥ h1 -- r A User Theorem
at-allocr ∈ h, r0 ≠ null, ¬ r0 ∈ h ⊦ r ≠ r0 → (h ++ r0)[r] = h[r] An Axiom
overwrite-split2 ⊦ h[r, o0][r0, o1][r1, o2][r, o3] = h[r0, o1][r1, o2][r, o3] A User Theorem
write-left ⊦ r ∈ h0 ∧ h0 ⊥ h1 → (h0 ∪ h1)[r, o] = h0[r, o] ∪ h1 A User Theorem
disj-r ⊦ r ∈ h1 ∧ h0 ⊥ h1 → (r ∈ h0 ↔ false) A User Theorem
sw-del-add-01r ≠ null ∧ ¬ r ∈ H ⊦ r0 ∈ H1 ∧ ¬ r ∈ H1 → ((H -- r0) ++ r)[r, o] = (H ++ r)[r, o] -- r0 A User Theorem
at-write-mod-two-other-3 ⊦ r ∈ h ∧ r ≠ r1 → h[r0, o0][r, o][r1, o1][r] = o A User Theorem
size-writer ∈ h ⊦ # h[r, o] = # h An Axiom
uni-allocr ≠ null, ¬ r ∈ h1, ¬ r ∈ h0, h0 ⊥ h1 ⊦ h0 ∪ (h1 ++ r) = (h0 ∪ h1) ++ r An Axiom
diffs-sw ⊦ (h -- r) \ rs = (h \ rs) -- r A User Theorem
disj-l ⊦ r ∈ h0 ∧ h0 ⊥ h1 → (r ∈ h1 ↔ false) A User Theorem
genheap generated by ∅, ++, [ ]; An Axiom
del-notin ⊦ ¬ r ∈ h → h -- r = h A User Theorem
in-diffs ⊦ r ∈ h \ rs ↔ r ∈ h ∧ ¬ r ∈ rs A User Theorem
diff-in ⊦ r ∈ h0 \ h1 ↔ r ∈ h0 ∧ ¬ r ∈ h1 A User Theorem
at-write-mod-two-other ⊦ r ∈ h ∧ r ≠ r0 ∧ r ≠ r1 → h[r, o][r0, o0][r1, o1][r] = o A User Theorem
diffs-emp ⊦ h0 \ ∅ = h0 An Axiom
diff-emp ⊦ h0 \ ∅ = h0 An Axiom
subset-emp ⊦ h ⊆ ∅ ↔ h = ∅ A User Theorem
disj-com-rw ⊦ h0 ⊥ h1 → h1 ⊥ h0 A User Theorem
disj-singleton-writer ≠ null ⊦ (∅ ++ r)[r, o] ⊥ h ↔ ¬ r ∈ h A User Theorem
union-left-singletonr ≠ null ⊦ r ∈ h → (∅ ++ r)[r, h[r]] ∪ (h -- r) = h A User Theorem
sanity ⊦ ¬ null ∈ h An Axiom
at-write ⊦ h[r0, o][r] = (r = r0 ∧ r0 ∈ h ⊃ o;h[r]) An Axiom
del-new¬ r ∈ h, r ≠ null ⊦ (h ++ r) -- r = h A User Theorem
at-write-mod-two-other-2 ⊦ r ∈ h → h[r0, o0][r1, o1][r, o][r] = o A User Theorem
disj-diff ⊦ h ⊥ h0 \ h A User Theorem
in-write ⊦ r ∈ h[r0, o] ↔ r ∈ h An Axiom
in-uni ⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1) A User Theorem
sw-delwrr ∈ h ⊦ r ≠ r0 → h[r, o] -- r0 = (h -- r0)[r, o] A User Theorem
at-write-mod-three-other-2 ⊦ r ∈ h → h[r0, o0][r1, o1][r2, o2][r, o][r] = o A User Theorem
at-diffs ⊦ r ∈ h ∧ ¬ r ∈ rs → (h \ rs)[r] = h[r] A User Theorem
disj-allocr0 ≠ null, ¬ r0 ∈ h0, ¬ r0 ∈ h1 ⊦ h0 ⊥ h1 → h0 ⊥ h1 ++ r0 A User Theorem
del-uni ⊦ h0 ⊥ h1 → (h0 ∪ h1) -- r = (h0 -- r) ∪ (h1 -- r) A User Theorem
diffs-twice ⊦ (h \ rs) \ rs = h \ rs A User Theorem
at-write-mod-other-2 ⊦ r ∈ h → h[r0, o0][r, o][r] = o A User Theorem
at-write-other ⊦ r ≠ r0 → h[r0, o][r] = h[r] A User Theorem
in-del ⊦ r ∈ h -- r0 ↔ r ≠ r0 ∧ r ∈ h An Axiom
structindhP(∅), ∀ h, r. hP(h) ∧ ¬ r ∈ h ∧ r ≠ null → hP(h ++ r), ∀ h, r, o. hP(h) ∧ r ∈ h → hP(h[r, o]) ⊦ hP(h) A User Theorem
rm-size ⊦ r ∈ h → #(h -- r) = # h - 1 A User Theorem
uni-writer ≠ null, r ∈ h1, h0 ⊥ h1 ⊦ h0 ∪ h1[r, o] = (h0 ∪ h1)[r, o] An Axiom
nonnull ⊦ r ∈ h → r ≠ null A User Theorem
sw-delswrr ∈ h ⊦ ¬ r ∈ rs → h[r, o] \ rs = (h \ rs)[r, o] A User Theorem
delswrr ∈ h ⊦ r ∈ rs → h[r, o] \ rs = h \ rs A User Theorem
sw-del-add-new¬ r ∈ h, r ≠ null ⊦ ¬ r ∈ rs → (h ++ r)[r, o] \ rs = ((h \ rs) ++ r)[r, o] A User Theorem
union-left-singleton-atr ≠ null, ¬ r ∈ h ⊦ ((∅ ++ r)[r, o] ∪ h)[r] = o A User Theorem
write-right ⊦ r ∈ h1 ∧ h0 ⊥ h1 → (h0 ∪ h1)[r, o] = h0 ∪ h1[r, o] A User Theorem
put-eq ⊦ r ∈ h → (h[r, d] = h[r, d1] ↔ d = d1) A User Theorem
emp-subset ⊦ ∅ ⊆ h A User Theorem
subset ⊦ h0 ⊆ h1 ↔ (∀ r. (r ∈ h0 → r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) An Axiom
uni-emp ⊦ h0 ∪ ∅ = h0 An Axiom
overwrite ⊦ h[r, o0][r, o1] = h[r, o1] A User Theorem
at-unir ∈ h0 ∪ h1 ⊦ h0 ⊥ h1 → (h0 ∪ h1)[r] = (r ∈ h0 ⊃ h0[r];h1[r]) A User Theorem
uni-emp-l ⊦ ∅ ∪ h = h A User Theorem
at-write-mod-other ⊦ r ∈ h ∧ r ≠ r0 → h[r, o][r0, o0][r] = o A User Theorem
in-write-strongr0 ∈ h ⊦ r ∈ h[r0, o] ↔ r ∈ h A User Theorem
disj-distr-uni-com ⊦ h1 ⊥ h2 → (h1 ∪ h2 ⊥ h0 ↔ h0 ⊥ h1 ∧ h0 ⊥ h2) A User Theorem
at-write-mod-three-other-4 ⊦ r ∈ h ∧ r ≠ r2 → h[r0, o0][r1, o1][r, o][r2, o2][r] = o A User Theorem
uni-com ⊦ h0 ⊥ h1 → h1 ∪ h0 = h0 ∪ h1 A User Theorem
at-delr ∈ h ⊦ r ≠ r0 → (h -- r0)[r] = h[r] An Axiom
disj-com ⊦ h0 ⊥ h1 ↔ h1 ⊥ h0 A User Theorem
size-uni ⊦ h0 ⊥ h1 → #(h0 ∪ h1) = # h0 + # h1 A User Theorem
diffs-ins ⊦ h0 \ (rs ++ r) = (h0 -- r) \ rs An Axiom
size-zero ⊦ # h = 0 ↔ h = ∅ A User Theorem
uni-ass ⊦ h0 ⊥ h1 ∧ h1 ⊥ h ∧ h ⊥ h0 → (h0 ∪ h1) ∪ h = h0 ∪ h1 ∪ h A User Theorem
del-twice ⊦ h -- r -- r = h -- r A User Theorem
diff-allocr ≠ null, ¬ r ∈ h1 ⊦ h0 \ (h1 ++ r) = (h0 -- r) \ h1 An Axiom
exin ⊦ r ≠ null → (r ∈ h ↔ (∃ h0, o. h = (h0 ++ r)[r, o] ∧ ¬ r ∈ h0)) A User Theorem
disj-emp-r ⊦ h ⊥ ∅ A User Theorem
subset-uni ⊦ h0 ⊆ h1 ↔ (∃ h. h0 ∪ h = h1 ∧ h ⊥ h0) A User Theorem
disj-writer ≠ null, ¬ r ∈ h1 ⊦ h0 ⊥ (h1 ++ r)[r, o] ↔ h0 ⊥ h1 ∧ ¬ r ∈ h0 A User Theorem
exin-uni ⊦ r ≠ null → (r ∈ h ↔ (∃ h0, o. h = h0 ∪ (∅ ++ r)[r, o] ∧ ¬ r ∈ h0)) A User Theorem
diff-size ⊦ r ∈ h \ rs → (#(h \ rs) ≤ #((h -- r) \ rs) ↔ false) A User Theorem
disj-emp-l ⊦ ∅ ⊥ h A User Theorem
uni-inj ⊦ h ⊥ h0 ∧ h ⊥ h1 → (h ∪ h0 = h ∪ h1 ↔ h0 = h1) A User Theorem
write-againr ∈ h ⊦ h[r] = o → h[r, o] = h A User Theorem
disj-distr-uni ⊦ h1 ⊥ h → (h0 ⊥ h1 ∪ h ↔ h0 ⊥ h1 ∧ h0 ⊥ h) A User Theorem
sw-alloc-put¬ r0 ∈ h, r0 ≠ null, r1 ∈ h ⊦ r0 ≠ r1 → (h ++ r0)[r0, o0][r1, o1] = (h[r1, o1] ++ r0)[r0, o0] A User Theorem
in-emp ⊦ ¬ r ∈ ∅ An Axiom
in-allocr0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h An Axiom
write-delr ∈ h ⊦ h[r, o] -- r = h -- r A User Theorem
size-alloc¬ r ∈ h, r ≠ null ⊦ #(h ++ r) = # h + 1 An Axiom
size-emp ⊦ # ∅ = 0 An Axiom
at-write-mod-three-other-3 ⊦ r ∈ h ∧ r ≠ r1 ∧ r ≠ r2 → h[r0, o0][r, o][r1, o1][r2, o2][r] = o A User Theorem
at-write-mod-three-other ⊦ r ∈ h ∧ r ≠ r0 ∧ r ≠ r1 ∧ r ≠ r2 → h[r, o][r0, o0][r1, o1][r2, o2][r] = o A User Theorem
subset-in ⊦ h0 ⊆ h1 ∧ r ∈ h0 → r ∈ h1 A User Theorem
dom ⊦ r ∈ dom h ↔ r ∈ h An Axiom
sw-del-addr ≠ null ∧ ¬ r ∈ H ⊦ r0 ≠ r → ((H -- r0) ++ r)[r, o] = (H ++ r)[r, o] -- r0 A User Theorem
diff-atr ∈ h0, ¬ r ∈ h1 ⊦ (h0 \ h1)[r] = h0[r] A User Theorem
ext ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) An Axiom
at-write-same ⊦ r ∈ h → h[r, o][r] = o A User Theorem
overwrite-split ⊦ h[r, o0][r0, o1][r, o2] = h[r0, o1][r, o2] A User Theorem
subset-at ⊦ h0 ⊆ h1 ∧ r ∈ h0 → h1[r] = h0[r] A User Theorem