[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 map-sep

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:
precise-this ⊦ precise({h} ) A User Theorem
and-com ⊦ (hP0 ∧ hP1) = (hP1 ∧ hP0) A User Theorem
and-ass ⊦ ((hP0 ∧ hP1) ∧ hP2) = (hP0 ∧ hP1 ∧ hP2) A User Theorem
septract ⊦ (hP0 -⊗ hP1)(h) ↔ (∃ h0, h1. h0 ⊥ h ∧ h1 = h0 ∪ h ∧ hP0(h0) ∧ hP1(h1)) An Axiom
precise-disjprecise(hP0), precise(hP1) ⊦ (hP0 * hP1 * true)(h0 ∪ h2) ∧ h0 ∪ h2 = h1 ∪ h3 ∧ h0 ⊥ h2 ∧ h1 ⊥ h3 ∧ hP0(h0) ∧ hP1(h1) → h0 ⊥ h1 A User Theorem
And-inj ⊦ hP0 = hP1 → ((hP ∧ hP0) = (hP ∧ hP1) ↔ true) A User Theorem
ite-same ⊦ ite(bv, hP, hP) = hP A User Theorem
imp-cases ⊦ bv → (⌜bv⌝ → hP) = hP A User Theorem
adjunction ⊦ (∀ h. (hP0 → hP1 -* hP2)(h)) ↔ (∀ h. (hP0 * hP1 → hP2)(h)) A User Theorem
And-prop-inj ⊦ (⌜bv⌝ ∧ hP0) = (⌜bv⌝ ∧ hP1) ↔ bv → hP0 = hP1 A User Theorem
Imp-from-eq ⊦ hP0 = hP1 ↔ hP0 ⊆ hP1 ∧ hP1 ⊆ hP0 A User Theorem
falseH ⊦ ¬ false(h) A User Theorem
sep-mp-p ⊦ (hP0 * (hP0 -* hP1) * hP2)(h) → (hP1 * hP2)(h) A User Theorem
eq-frame∀ hP. hP * hP0 = hP * hP1 ⊦ hP0 = hP1 A User Theorem
Imp2 ⊦ hP0 ⊆ hP1 ∧ (hP * hP0)(h) → (hP * hP1)(h) A User Theorem
Imp1 ⊦ hP0 ⊆ hP1 ∧ hP0(h) → hP1(h) A User Theorem
false-sep ⊦ false * hP = false A User Theorem
precise-split-lprecise(hP0) ⊦ hP0(h0) ∧ h0 ⊥ h1 → ((hP0 * hP1)(h0 ∪ h1) ↔ hP1(h1)) A User Theorem
wand-same-emp ⊦ (hP -* hP)(∅) A User Theorem
wand ⊦ (hP0 -* hP1)(h) ↔ (∀ h1. h1 ⊥ h ∧ hP0(h1) → hP1(h1 ∪ h)) An Axiom
Imp-trans ⊦ hP0 ⊆ hP1 ∧ hP1 ⊆ hP2 → hP0 ⊆ hP2 A User Theorem
precise-split-rprecise(hP1) ⊦ hP1(h1) ∧ h0 ⊥ h1 → ((hP0 * hP1)(h0 ∪ h1) ↔ hP0(h0)) A User Theorem
sep-mp-subset ⊦ hP0 * (hP0 -* hP1) ⊆ hP1 A User Theorem
sep-inj2 ⊦ hP0 = hP1 ∧ hP2 = hP3 → hP0 * hP2 = hP1 * hP3 A User Theorem
sep-inj3 ⊦ hP0 = hP1 ∧ hP2 = hP3 ∧ hP4 = hP5 → hP0 * hP2 * hP4 = hP1 * hP3 * hP5 A User Theorem
this-emp ⊦ {∅} = emp A User Theorem
true-rev ⊦ ⌜true⌝ = true A User Theorem
prop-sep ⊦ ((⌜bv⌝ ∧ hP0) * hP1)(h) ↔ bv ∧ (hP0 * hP1)(h) A User Theorem
Frame ⊦ hP0 ⊆ hP1 -* hP1 * hP0 A User Theorem
precise-and ⊦ precise(hP0) → precise(hP0 ∧ hP1) A User Theorem
sep-inj2-imp ⊦ hP0 ⊆ hP1 ∧ hP2 ⊆ hP3 → hP0 * hP2 ⊆ hP1 * hP3 A User Theorem
precise-sameprecise(hP) ⊦ hP(h0) ∧ hP(h1) ∧ h0 ⊥ h ∧ h1 ⊥ h2 → (h0 ∪ h = h1 ∪ h2 ↔ h0 = h1 ∧ h = h2) A User Theorem
or-ass ⊦ ((hP0 ∨ hP1) ∨ hP2) = (hP0 ∨ hP1 ∨ hP2) A User Theorem
or-com ⊦ (hP0 ∨ hP1) = (hP1 ∨ hP0) A User Theorem
and-splitprecise(hP) ⊦ (hP * (hP0 ∧ hP1))(h) ↔ (hP * hP0)(h) ∧ (hP * hP1)(h) A User Theorem
prop ⊦ ⌜bv⌝ (h) ↔ bv An Axiom
ite-true ⊦ ite(true, hP0, hP1) = hP0 A User Theorem
precise ⊦ precise(hP) ↔ (∀ h, h0, h1, h2. hP(h) ∧ hP(h0) ∧ h ⊥ h1 ∧ h0 ⊥ h2 ∧ h ∪ h1 = h0 ∪ h2 → h = h0) An Axiom
sharing-weaken ⊦ ¬ (hP0 ⊗ hP1)(h) → ¬ (hP0 * hP1)(h) A User Theorem
and-imp ⊦ (hP * (hP1 ∧ hP2))(h) → (hP * hP1)(h) A User Theorem
sep ⊦ (hP0 * hP1)(h) ↔ (∃ h0, h1. h0 ⊥ h1 ∧ h = h0 ∪ h1 ∧ hP0(h0) ∧ hP1(h1)) An Axiom
false-rev ⊦ ⌜false⌝ = false A User Theorem
wand-shift ⊦ (hP0 * (hP1 -* hP2))(h) → (hP1 -* hP0 * hP2)(h) A User Theorem
imp-proptrue ⊦ (true → hP) = hP A User Theorem
imp-mono∀ h. hP(h) → hP0(h), (hP * hP1)(h0) ⊦ (hP0 * hP1)(h0) A User Theorem
wand-same-emp-p ⊦ hP0(h) → ((hP -* hP) * hP0)(h) A User Theorem
contract-wand ⊦ hP0 * (hP0 -* hP1) = (hP0 * (hP0 -* hP1) ∧ hP1) A User Theorem
and-combineprecise(hP0) ⊦ h ⊥ h0 ∧ hP0(h0) ∧ hP1(h0) → ((hP * (hP0 ∧ hP1))(h ∪ h0) ↔ hP(h)) A User Theorem
true-elim ⊦ (hP0 * hP)(h) → (true * hP)(h) A User Theorem
true-sharing ⊦ hP ⊗ true = hP * true A User Theorem
precise-emp ⊦ precise(emp) A User Theorem
sep-mp ⊦ (hP0 * (hP0 -* hP1))(h) → hP1(h) A User Theorem
wand-dual ⊦ hP0 -⊗ hP1 = ¬(hP0 -* ¬ hP1) A User Theorem
introduce-sharing ⊦ (hP0 ⊗ hP1)(h) ↔ (∃ hP. ((hP -* hP0) * (hP -* hP1) * hP)(h)) A User Theorem
septract-dual ⊦ hP0 -* hP1 = ¬(hP0 -⊗ ¬ hP1) A User Theorem
split-union ⊦ hP0(h0) ∧ hP1(h1) ∧ h0 ⊥ h1 → (hP0 * hP1)(h0 ∪ h1) A User Theorem
imp-propfalse ⊦ (false → hP) = true A User Theorem
sep-com ⊦ hP0 * hP1 = hP1 * hP0 A User Theorem
sep-ass ⊦ (hP0 * hP1) * hP2 = hP0 * hP1 * hP2 A User Theorem
wand-flatten ⊦ hP0 -* hP1 -* hP2 = hP0 * hP1 -* hP2 A User Theorem
false-Imp ⊦ false ⊆ hP A User Theorem
ite ⊦ ite(bv, hP0, hP1) = (bv ⊃ hP0;hP1) An Axiom
stability(hP0 * {h} )(h0), (hP1 * {h} )(h1), (hP0 -⊗ hP) * hP1 ⊆ hP ⊦ hP(h0) → hP(h1) A User Theorem
and-weaken∀ h. (hP1 → hP0)(h) ⊦ (hP0 ∧ hP1) = hP1 A User Theorem
sep-partial-mp ⊦ (hP0 * (hP0 * hP2 -* hP1))(h) → (hP2 -* hP1)(h) A User Theorem
this ⊦ {h} (h0) ↔ h = h0 An Axiom
sep-partial-mp-2 ⊦ (hP0 * hP * (hP0 * hP2 -* hP1))(h) → (hP * (hP2 -* hP1))(h) A User Theorem
sharing ⊦ (hP0 ⊗ hP1)(h) ↔ (∃ h0, h1, h2. h0 ⊥ h2 ∧ h0 ⊥ h1 ∧ h1 ⊥ h2 ∧ h = h0 ∪ h1 ∪ h2 ∧ hP0(h0 ∪ h2) ∧ hP1(h1 ∪ h2)) An Axiom
Imp ⊦ hP0 ⊆ hP1 ↔ (∀ h. hP0(h) → hP1(h)) An Axiom
Eq-P ⊦ hP0 = hP1 ↔ (∀ hP, h. (hP0 * hP)(h) ↔ (hP1 * hP)(h)) A User Theorem
Imp-refl ⊦ hP ⊆ hP A User Theorem
and-weaken-this(hP1 → hP0)(h) ⊦ (hP0 ∧ hP1)(h) ↔ hP1(h) A User Theorem
false-and ⊦ (false ∧ hP) = false A User Theorem
ite-false ⊦ ite(false, hP0, hP1) = hP1 A User Theorem
Imp-frame∀ hP. hP * hP0 ⊆ hP * hP1 ⊦ hP0 ⊆ hP1 A User Theorem
imp-ite ⊦ (⌜bv0⌝ → ite(bv, hP0, hP1)) = ite(bv0 → bv, ⌜bv0⌝ → hP0, ⌜bv0⌝ → hP1) A User Theorem
true ⊦ true = ⌜true⌝ An Axiom
Imp-p ⊦ (⌜bv⌝ ∧ hP0) ⊆ (⌜bv⌝ ∧ hP1) ↔ bv → hP0 ⊆ hP1 A User Theorem
sharing-ass ⊦ hP0 ⊗ hP1 ⊗ hP2 = (hP0 ⊗ hP1) ⊗ hP2 A User Theorem
sharing-com ⊦ hP0 ⊗ hP1 = hP1 ⊗ hP0 A User Theorem
true-elims ⊦ (hP0 ⊗ hP)(h) → (true ⊗ hP)(h) A User Theorem
true-and ⊦ (true ∧ hP) = hP A User Theorem
emp ⊦ emp(h) ↔ h = ∅ An Axiom
precise-sep ⊦ precise(hP0) ∧ precise(hP1) → precise(hP0 * hP1) A User Theorem
imp ⊦ (hP0 → hP1)(h) ↔ hP0(h) → hP1(h) An Axiom
sharing-and ⊦ ¬ (hP0 ⊗ hP1)(h) → ¬ hP0(h) ∨ ¬ hP1(h) A User Theorem
emp-sep ⊦ emp * hP = hP A User Theorem
not ⊦ (¬ hP0)(h) ↔ ¬ hP0(h) An Axiom
true-emp ⊦ hP(h) → (true * hP)(h) A User Theorem
and ⊦ (hP0 ∧ hP1)(h) ↔ hP0(h) ∧ hP1(h) An Axiom
prop-shift ⊦ (⌜bv⌝ ∧ hP0) * hP1 = (⌜bv⌝ ∧ hP0 * hP1) A User Theorem
trueH ⊦ true(h) A User Theorem
or ⊦ (hP0 ∨ hP1)(h) ↔ hP0(h) ∨ hP1(h) An Axiom
sharing-sep-true ⊦ ¬ (hP0 * true)(h) → ¬ (hP0 ⊗ hP1)(h) A User Theorem
true-true ⊦ true * true = true A User Theorem
false ⊦ false = ⌜false⌝ An Axiom
precise-alt-def ⊦ precise(hP) ↔ (∀ h, h0, h1. h0 ⊆ h ∧ h1 ⊆ h ∧ hP(h0) ∧ hP(h1) → h0 = h1) A User Theorem
prop-emp ⊦ ((⌜bv⌝ ∧ emp) * hP)(h) ↔ bv ∧ hP(h) A User Theorem
sep-split-interactive ⊦ ∀ hP0. (hP * hP0)(h) → (∃ h0, h1. h0 ⊥ h1 ∧ h0 ∪ h1 = h ∧ hP(h0) ∧ hP0(h1)) A User Theorem
wand-shift-p ⊦ (hP0 * (hP1 -* hP2) * hP)(h) → ((hP1 -* hP0 * hP2) * hP)(h) A User Theorem
sharing-ass-aux2⊦ ((hP0 ⊗ hP1) ⊗ hP2)(h) ↔ (∃ h0, h1, h2, h21, h20, h10, h210. h = (h1 ∪ h0 ∪ h10) ∪ h2 ∪ h20 ∪ h21 ∪ h210 ∧ h0 ⊥ h1 ∧ h0 ⊥ h2 ∧ h0 ⊥ h21 ∧ h0 ⊥ h20 ∧ h0 ⊥ h10 ∧ h0 ⊥ h210 ∧ h1 ⊥ h2 ∧ h1 ⊥ h21 ∧ h1 ⊥ h20 ∧ h1 ⊥ h10 ∧ h1 ⊥ h210 ∧ h2 ⊥ h21 ∧ h2 ⊥ h20 ∧ h2 ⊥ h10 ∧ h2 ⊥ h210 ∧ h21 ⊥ h20 ∧ h21 ⊥ h10 ∧ h21 ⊥ h210 ∧ h20 ⊥ h10 ∧ h20 ⊥ h210 ∧ h10 ⊥ h210 ∧ hP0(h0 ∪ h10 ∪ h20 ∪ h210) ∧ hP1(h1 ∪ h10 ∪ h21 ∪ h210) ∧ hP2(h2 ∪ h20 ∪ h21 ∪ h210)) A User Theorem
sharing-ass-aux1⊦ (hP0 ⊗ hP1 ⊗ hP2)(h) ↔ (∃ h0, h1, h2, h21, h20, h10, h210. h = (h1 ∪ h0 ∪ h10) ∪ h2 ∪ h20 ∪ h21 ∪ h210 ∧ h0 ⊥ h1 ∧ h0 ⊥ h2 ∧ h0 ⊥ h21 ∧ h0 ⊥ h20 ∧ h0 ⊥ h10 ∧ h0 ⊥ h210 ∧ h1 ⊥ h2 ∧ h1 ⊥ h21 ∧ h1 ⊥ h20 ∧ h1 ⊥ h10 ∧ h1 ⊥ h210 ∧ h2 ⊥ h21 ∧ h2 ⊥ h20 ∧ h2 ⊥ h10 ∧ h2 ⊥ h210 ∧ h21 ⊥ h20 ∧ h21 ⊥ h10 ∧ h21 ⊥ h210 ∧ h20 ⊥ h10 ∧ h20 ⊥ h210 ∧ h10 ⊥ h210 ∧ hP0(h0 ∪ h10 ∪ h20 ∪ h210) ∧ hP1(h1 ∪ h10 ∪ h21 ∪ h210) ∧ hP2(h2 ∪ h20 ∪ h21 ∪ h210)) A User Theorem
p-Imp ⊦ (⌜bv⌝ ∧ hP0) ⊆ hP1 ↔ bv → hP0 ⊆ hP1 A User Theorem
sep-inj ⊦ hP0 = hP1 → hP * hP0 = hP * hP1 A User Theorem
septract-given ⊦ precise(hP0) → hP0 -⊗ hP0 * hP1 ⊆ hP1 A User Theorem
sharing-emp ⊦ hP ⊗ emp = hP A User Theorem