| ⊦ precise(ls(r, x)) |
¬ precise(ls(r, x)) ⊦
| ¬ precise(ls(r, x)) ⊦ |
⊦ precise(hP) ↔ (∀ h, h0, h1, h2. hP(h) ∧ hP(h0) ∧ h ⊥ h1 ∧ h0 ⊥ h2 ∧ h ∪ h1 = h0 ∪ h2 → h = h0)
∃ h, h0, h1, h2. ¬(ls(r, x)(h) ∧ ls(r, x)(h0) ∧ h ⊥ h1 ∧ h0 ⊥ h2 ∧ h ∪ h1 = h0 ∪ h2 → h = h0) ⊦
Used terms: ls(r, x)
| ⊦ precise(hP) ↔ (∀ h, h0, h1, h2. hP(h) ∧ hP(h0) ∧ h ⊥ h1 ∧ h0 ⊥ h2 ∧ h ∪ h1 = h0 ∪ h2 → h = h0) |
| ∃ h, h0, h1, h2. ¬(ls(r, x)(h) ∧ ls(r, x)(h0) ∧ h ⊥ h1 ∧ h0 ⊥ h2 ∧ h ∪ h1 = h0 ∪ h2 → h = h0) ⊦ |
h ∪ h1 = h0 ∪ h2, h ≠ h0, ls(r, x)(h), ls(r, x)(h0), h ⊥ h1, h0 ⊥ h2 ⊦
| h ∪ h1 = h0 ∪ h2, h ≠ h0, ls(r, x)(h), ls(r, x)(h0), h ⊥ h1, h0 ⊥ h2 ⊦ |
h ∪ h1 = h0 ∪ h2, h ≠ h0, ls(r, a + x0)(h0), ls(r, a + x0)(h), h0 ⊥ h2, h ⊥ h1, ∀ h, h1, h0, h2, r. ¬(h ∪ h1 = h0 ∪ h2 ∧ h ≠ h0 ∧ ls(r, x0)(h) ∧ ls(r, x0)(h0) ∧ h ⊥ h1 ∧ h0 ⊥ h2) ⊦
Used simplifier rules: ls-base: ⊦ ls(r, []) = (emp ∧ ⌜r = null⌝ ); list freely generated by [], +;; ⊦ ((hP0 ∧ hP1))(h) ↔ hP0(h) ∧ hP1(h); (s) ⊦ ⌜bv⌝ (h) ↔ bv; (s) ⊦ emp(h) ↔ h = ∅; (s) ⊦ ⌜true⌝ = true; (s) ⊦ (true ∧ hP) = hP; (s) and-ass: ⊦ ((hP0 ∧ hP1) ∧ hP2) = (hP0 ∧ hP1 ∧ hP2); from specification heap-sep and-com: ⊦ (hP0 ∧ hP1) = (hP1 ∧ hP0); from specification heap-sep ⊦ precise(emp); (s) precise(hP) ⊦ hP(h0) ∧ hP(h1) ∧ h0 ⊥ h ∧ h1 ⊥ h2 → (h0 ∪ h = h1 ∪ h2 ↔ h0 = h1 ∧ h = h2); (s)
| h ∪ h1 = h0 ∪ h2, h ≠ h0, ls(r, a + x0)(h0), ls(r, a + x0)(h), h0 ⊥ h2, h ⊥ h1, ∀ h, h1, h0, h2, r. ¬(h ∪ h1 = h0 ∪ h2 ∧ h ≠ h0 ∧ ls(r, x0)(h) ∧ ls(r, x0)(h0) ∧ h ⊥ h1 ∧ h0 ⊥ h2) ⊦ |
h ∪ h1 = h0 ∪ h2, h ≠ h0, ((r => a × r0 * ls(r0, x0)))(h), ((r => a × r1 * ls(r1, x0)))(h0), h ⊥ h1, h0 ⊥ h2, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦
Used simplifier rules: ls-rec: ⊦ ls(r, a ' + x) = _∃(λ r0. r => a × r0 * ls(r0, x)); ⊦ (_∃ rP)(h) ↔ (∃ r. rP(r)(h)); (s) a: ⊦ (x + y) + z = x + y + z; from specification list ⊦ a + x = a ' + x; (s)
| h ∪ h1 = h0 ∪ h2, h ≠ h0, ((r => a × r0 * ls(r0, x0)))(h), ((r => a × r1 * ls(r1, x0)))(h0), h ⊥ h1, h0 ⊥ h2, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ |
⊦ ((hP0 * hP1))(h) ↔ (∃ h0, h1. h0 ⊥ h1 ∧ h = h0 ∪ h1 ∧ hP0(h0) ∧ hP1(h1))
h ∪ h1 = h0 ∪ h2, h ≠ h0, ((r => a × r1 * ls(r1, x0)))(h0), h0 ⊥ h2, h ⊥ h1, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6, ∃ h0, h1. h0 ⊥ h1 ∧ h = h0 ∪ h1 ∧ ((r => a × r0))(h0) ∧ ls(r0, x0)(h1) ⊦
Used terms: h, ls(r0, x0), r => a × r0
| ⊦ ((hP0 * hP1))(h) ↔ (∃ h0, h1. h0 ⊥ h1 ∧ h = h0 ∪ h1 ∧ hP0(h0) ∧ hP1(h1)) |
| h ∪ h1 = h0 ∪ h2, h ≠ h0, ((r => a × r1 * ls(r1, x0)))(h0), h0 ⊥ h2, h ⊥ h1, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6, ∃ h0, h1. h0 ⊥ h1 ∧ h = h0 ∪ h1 ∧ ((r => a × r0))(h0) ∧ ls(r0, x0)(h1) ⊦ |
(h3 ∪ h4) ∪ h1 = h0 ∪ h2, h3 ∪ h4 ≠ h0, ((r => a × r1 * ls(r1, x0)))(h0), ((r => a × r0))(h3), ls(r0, x0)(h4), h0 ⊥ h2, h3 ⊥ h4, h1 ⊥ h3, h1 ⊥ h4, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦
Used simplifier rules: ⊦ h1 ⊥ h2 → (h1 ∪ h2 ⊥ h0 ↔ h0 ⊥ h1 ∧ h0 ⊥ h2); (ws)
| (h3 ∪ h4) ∪ h1 = h0 ∪ h2, h3 ∪ h4 ≠ h0, ((r => a × r1 * ls(r1, x0)))(h0), ((r => a × r0))(h3), ls(r0, x0)(h4), h0 ⊥ h2, h3 ⊥ h4, h1 ⊥ h3, h1 ⊥ h4, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ |
⊦ ((hP0 * hP1))(h) ↔ (∃ h0, h1. h0 ⊥ h1 ∧ h = h0 ∪ h1 ∧ hP0(h0) ∧ hP1(h1))
(h3 ∪ h4) ∪ h1 = h0 ∪ h2, h3 ∪ h4 ≠ h0, ((r => a × r0))(h3), ls(r0, x0)(h4), h1 ⊥ h4, h1 ⊥ h3, h3 ⊥ h4, h0 ⊥ h2, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6, ∃ h1, h2. h1 ⊥ h2 ∧ h0 = h1 ∪ h2 ∧ ((r => a × r1))(h1) ∧ ls(r1, x0)(h2) ⊦
Used terms: h0, ls(r1, x0), r => a × r1
| ⊦ ((hP0 * hP1))(h) ↔ (∃ h0, h1. h0 ⊥ h1 ∧ h = h0 ∪ h1 ∧ hP0(h0) ∧ hP1(h1)) |
| (h3 ∪ h4) ∪ h1 = h0 ∪ h2, h3 ∪ h4 ≠ h0, ((r => a × r0))(h3), ls(r0, x0)(h4), h1 ⊥ h4, h1 ⊥ h3, h3 ⊥ h4, h0 ⊥ h2, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6, ∃ h1, h2. h1 ⊥ h2 ∧ h0 = h1 ∪ h2 ∧ ((r => a × r1))(h1) ∧ ls(r1, x0)(h2) ⊦ |
(h3 ∪ h4) ∪ h1 = (h ∪ h5) ∪ h2, h3 ∪ h4 ≠ h ∪ h5, ((r => a × r0))(h3), ((r => a × r1))(h), ls(r0, x0)(h4), ls(r1, x0)(h5), h3 ⊥ h4, h1 ⊥ h3, h1 ⊥ h4, h ⊥ h5, h2 ⊥ h, h2 ⊥ h5, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦
Used simplifier rules: ⊦ h1 ⊥ h2 → (h1 ∪ h2 ⊥ h0 ↔ h0 ⊥ h1 ∧ h0 ⊥ h2); (ws)
| (h3 ∪ h4) ∪ h1 = (h ∪ h5) ∪ h2, h3 ∪ h4 ≠ h ∪ h5, ((r => a × r0))(h3), ((r => a × r1))(h), ls(r0, x0)(h4), ls(r1, x0)(h5), h3 ⊥ h4, h1 ⊥ h3, h1 ⊥ h4, h ⊥ h5, h2 ⊥ h, h2 ⊥ h5, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ |
h3 = h, r0 = r1, (h3 ∪ h4) ∪ h1 = (h ∪ h5) ∪ h2, h3 ∪ h4 ≠ h ∪ h5, ((r => a × r1))(h), ((r => a × r0))(h3), ls(r1, x0)(h5), ls(r0, x0)(h4), h2 ⊥ h5, h2 ⊥ h, h ⊥ h5, h1 ⊥ h4, h1 ⊥ h3, h3 ⊥ h4, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦
(h3 ∪ h4) ∪ h1 = (h ∪ h5) ∪ h2, h3 ∪ h4 ≠ h ∪ h5, ((r => a × r1))(h), ((r => a × r0))(h3), ls(r1, x0)(h5), ls(r0, x0)(h4), h2 ⊥ h5, h2 ⊥ h, h ⊥ h5, h1 ⊥ h4, h1 ⊥ h3, h3 ⊥ h4, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ h3 = h ∧ r0 = r1
Used formulas: h3 = h ∧ r0 = r1
| h3 = h, r0 = r1, (h3 ∪ h4) ∪ h1 = (h ∪ h5) ∪ h2, h3 ∪ h4 ≠ h ∪ h5, ((r => a × r1))(h), ((r => a × r0))(h3), ls(r1, x0)(h5), ls(r0, x0)(h4), h2 ⊥ h5, h2 ⊥ h, h ⊥ h5, h1 ⊥ h4, h1 ⊥ h3, h3 ⊥ h4, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ |
(h ∪ h4) ∪ h1 = (h ∪ h5) ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h4), ls(r1, x0)(h5), h ⊥ h4, h1 ⊥ h, h1 ⊥ h4, h ⊥ h5, h2 ⊥ h, h2 ⊥ h5, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦
Used simplifier rules: precise(hP) ⊦ hP(h0) ∧ hP(h1) ∧ h0 ⊥ h ∧ h1 ⊥ h2 → (h0 ∪ h = h1 ∪ h2 ↔ h0 = h1 ∧ h = h2); (s) ⊦ precise(r => o); (s)
| (h ∪ h4) ∪ h1 = (h ∪ h5) ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h4), ls(r1, x0)(h5), h ⊥ h4, h1 ⊥ h, h1 ⊥ h4, h ⊥ h5, h2 ⊥ h, h2 ⊥ h5, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ |
⊦ h0 ⊥ h1 ∧ h1 ⊥ h ∧ h ⊥ h0 → (h0 ∪ h1) ∪ h = h0 ∪ h1 ∪ h
h ∪ h4 ∪ h1 = (h ∪ h5) ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h5), ls(r1, x0)(h4), h2 ⊥ h5, h2 ⊥ h, h ⊥ h5, h1 ⊥ h4, h ⊥ h4, h4 ⊥ h1, h1 ⊥ h, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦
Used simplifier rules: ⊦ h0 ⊥ h1 → h1 ⊥ h0; (s) Used terms: h1, h4, h
| ⊦ h0 ⊥ h1 ∧ h1 ⊥ h ∧ h ⊥ h0 → (h0 ∪ h1) ∪ h = h0 ∪ h1 ∪ h |
| h ∪ h4 ∪ h1 = (h ∪ h5) ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h5), ls(r1, x0)(h4), h2 ⊥ h5, h2 ⊥ h, h ⊥ h5, h1 ⊥ h4, h ⊥ h4, h4 ⊥ h1, h1 ⊥ h, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ |
h ∪ h4 ∪ h1 = (h ∪ h5) ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h4), ls(r1, x0)(h5), h1 ⊥ h, h ⊥ h4, h1 ⊥ h4, h ⊥ h5, h2 ⊥ h, h2 ⊥ h5, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦
Used simplifier rules: ⊦ h0 ⊥ h1 → h1 ⊥ h0; (s)
| h ∪ h4 ∪ h1 = (h ∪ h5) ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h4), ls(r1, x0)(h5), h1 ⊥ h, h ⊥ h4, h1 ⊥ h4, h ⊥ h5, h2 ⊥ h, h2 ⊥ h5, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ |
⊦ h0 ⊥ h1 ∧ h1 ⊥ h ∧ h ⊥ h0 → (h0 ∪ h1) ∪ h = h0 ∪ h1 ∪ h
h ∪ h4 ∪ h1 = h ∪ h5 ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h5), ls(r1, x0)(h4), h2 ⊥ h5, h1 ⊥ h4, h ⊥ h4, h1 ⊥ h, h ⊥ h5, h5 ⊥ h2, h2 ⊥ h, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦
Used simplifier rules: ⊦ h0 ⊥ h1 → h1 ⊥ h0; (s) Used terms: h2, h5, h
| ⊦ h0 ⊥ h1 ∧ h1 ⊥ h ∧ h ⊥ h0 → (h0 ∪ h1) ∪ h = h0 ∪ h1 ∪ h |
| h ∪ h4 ∪ h1 = h ∪ h5 ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h5), ls(r1, x0)(h4), h2 ⊥ h5, h1 ⊥ h4, h ⊥ h4, h1 ⊥ h, h ⊥ h5, h5 ⊥ h2, h2 ⊥ h, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ |
h ∪ h4 ∪ h1 = h ∪ h5 ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h4), ls(r1, x0)(h5), h2 ⊥ h, h ⊥ h5, h1 ⊥ h, h ⊥ h4, h1 ⊥ h4, h2 ⊥ h5, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦
Used simplifier rules: ⊦ h0 ⊥ h1 → h1 ⊥ h0; (s)
| h ∪ h4 ∪ h1 = h ∪ h5 ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h4), ls(r1, x0)(h5), h2 ⊥ h, h ⊥ h5, h1 ⊥ h, h ⊥ h4, h1 ⊥ h4, h2 ⊥ h5, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ |
⊦ h ⊥ h0 ∧ h ⊥ h1 → (h ∪ h0 = h ∪ h1 ↔ h0 = h1)
h ∪ h4 ∪ h1 = h ∪ h5 ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h5), ls(r1, x0)(h4), h2 ⊥ h5, h1 ⊥ h4, h ⊥ h4, h1 ⊥ h, h ⊥ h5, h2 ⊥ h, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ h ⊥ h4 ∪ h1 ∧ h ⊥ h5 ∪ h2
h4 ∪ h1 = h5 ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h5), ls(r1, x0)(h4), h2 ⊥ h5, h1 ⊥ h4, h ⊥ h4, h1 ⊥ h, h ⊥ h5, h2 ⊥ h, h ⊥ h4 ∪ h1, h ⊥ h5 ∪ h2, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦
Used terms: h5 ∪ h2, h4 ∪ h1, h
| ⊦ h ⊥ h0 ∧ h ⊥ h1 → (h ∪ h0 = h ∪ h1 ↔ h0 = h1) |
| h ∪ h4 ∪ h1 = h ∪ h5 ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h5), ls(r1, x0)(h4), h2 ⊥ h5, h1 ⊥ h4, h ⊥ h4, h1 ⊥ h, h ⊥ h5, h2 ⊥ h, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ h ⊥ h4 ∪ h1 ∧ h ⊥ h5 ∪ h2 |
h ∪ h4 ∪ h1 = h ∪ h5 ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h4), ls(r1, x0)(h5), h2 ⊥ h, h ⊥ h5, h1 ⊥ h, h ⊥ h4, h1 ⊥ h4, h2 ⊥ h5, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ h ⊥ h4 ∪ h1 ∧ h ⊥ h5 ∪ h2
| h ∪ h4 ∪ h1 = h ∪ h5 ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h4), ls(r1, x0)(h5), h2 ⊥ h, h ⊥ h5, h1 ⊥ h, h ⊥ h4, h1 ⊥ h4, h2 ⊥ h5, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ h ⊥ h4 ∪ h1 ∧ h ⊥ h5 ∪ h2 |
⊦ h1 ⊥ h → (h0 ⊥ h1 ∪ h ↔ h0 ⊥ h1 ∧ h0 ⊥ h)
h ∪ h4 ∪ h1 = h ∪ h5 ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h5), ls(r1, x0)(h4), h2 ⊥ h5, h1 ⊥ h4, h ⊥ h4, h1 ⊥ h, h ⊥ h5, h2 ⊥ h, h4 ⊥ h1, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ (h ⊥ h4 ∧ h ⊥ h1) ∧ h ⊥ h5 ∪ h2
Used simplifier rules: ⊦ h0 ⊥ h1 → h1 ⊥ h0; (s) Used terms: h1, h4, h
| ⊦ h1 ⊥ h → (h0 ⊥ h1 ∪ h ↔ h0 ⊥ h1 ∧ h0 ⊥ h) |
| h ∪ h4 ∪ h1 = h ∪ h5 ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h5), ls(r1, x0)(h4), h2 ⊥ h5, h1 ⊥ h4, h ⊥ h4, h1 ⊥ h, h ⊥ h5, h2 ⊥ h, h4 ⊥ h1, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ (h ⊥ h4 ∧ h ⊥ h1) ∧ h ⊥ h5 ∪ h2 |
h ∪ h4 ∪ h1 = h ∪ h5 ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h4), ls(r1, x0)(h5), h2 ⊥ h, h ⊥ h5, h1 ⊥ h, h ⊥ h4, h1 ⊥ h4, h2 ⊥ h5, ¬ h ⊥ h5 ∪ h2, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦
Used simplifier rules: ⊦ h0 ⊥ h1 → h1 ⊥ h0; (s)
| h ∪ h4 ∪ h1 = h ∪ h5 ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h4), ls(r1, x0)(h5), h2 ⊥ h, h ⊥ h5, h1 ⊥ h, h ⊥ h4, h1 ⊥ h4, h2 ⊥ h5, ¬ h ⊥ h5 ∪ h2, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ |
⊦ h1 ⊥ h → (h0 ⊥ h1 ∪ h ↔ h0 ⊥ h1 ∧ h0 ⊥ h)
Used simplifier rules: ⊦ h0 ⊥ h1 → h1 ⊥ h0; (s) Used terms: h2, h5, h
| ⊦ h1 ⊥ h → (h0 ⊥ h1 ∪ h ↔ h0 ⊥ h1 ∧ h0 ⊥ h) |
| h4 ∪ h1 = h5 ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h5), ls(r1, x0)(h4), h2 ⊥ h5, h1 ⊥ h4, h ⊥ h4, h1 ⊥ h, h ⊥ h5, h2 ⊥ h, h ⊥ h4 ∪ h1, h ⊥ h5 ∪ h2, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ |
h4 ∪ h1 = h5 ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h4), ls(r1, x0)(h5), h ⊥ h5 ∪ h2, h2 ⊥ h, h ⊥ h5, h1 ⊥ h, h ⊥ h4, h1 ⊥ h4, h2 ⊥ h5, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦
| h4 ∪ h1 = h5 ∪ h2, h4 ≠ h5, ((r => a × r1))(h), ls(r1, x0)(h4), ls(r1, x0)(h5), h ⊥ h5 ∪ h2, h2 ⊥ h, h ⊥ h5, h1 ⊥ h, h ⊥ h4, h1 ⊥ h4, h2 ⊥ h5, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ |
Used simplifier rules: ⊦ h0 ⊥ h1 → h1 ⊥ h0; (ss) Used terms: h4, h1, h5, h2, r1
| (h3 ∪ h4) ∪ h1 = (h ∪ h5) ∪ h2, h3 ∪ h4 ≠ h ∪ h5, ((r => a × r1))(h), ((r => a × r0))(h3), ls(r1, x0)(h5), ls(r0, x0)(h4), h2 ⊥ h5, h2 ⊥ h, h ⊥ h5, h1 ⊥ h4, h1 ⊥ h3, h3 ⊥ h4, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ h3 = h ∧ r0 = r1 |
⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r]))
h3 ∪ h4 ≠ h ∪ h5, ((r => a × r0))(h3), ((r => a × r1))(h), ls(r0, x0)(h4), ls(r1, x0)(h5), h3 ⊥ h4, h1 ⊥ h3, h1 ⊥ h4, h ⊥ h5, h2 ⊥ h, h2 ⊥ h5, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6, ∀ r. (r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2) ∧ (r ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r]) ⊦ h3 = h ∧ r0 = r1
Used terms: (h ∪ h5) ∪ h2, (h3 ∪ h4) ∪ h1
| ⊦ h0 = h1 ↔ (∀ r. (r ∈ h0 ↔ r ∈ h1) ∧ (r ∈ h0 → h0[r] = h1[r])) |
| h3 ∪ h4 ≠ h ∪ h5, ((r => a × r0))(h3), ((r => a × r1))(h), ls(r0, x0)(h4), ls(r1, x0)(h5), h3 ⊥ h4, h1 ⊥ h3, h1 ⊥ h4, h ⊥ h5, h2 ⊥ h, h2 ⊥ h5, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6, ∀ r. (r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2) ∧ (r ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r]) ⊦ h3 = h ∧ r0 = r1 |
r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2, h3 ∪ h4 ≠ h ∪ h5, ((r => a × r1))(h), ((r => a × r0))(h3), ls(r1, x0)(h5), ls(r0, x0)(h4), h2 ⊥ h5, h2 ⊥ h, h ⊥ h5, h1 ⊥ h4, h1 ⊥ h3, h3 ⊥ h4, r ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r], ∀ r. (r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2) ∧ (r ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r]), ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ h3 = h ∧ r0 = r1
Used terms: r
| r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2, h3 ∪ h4 ≠ h ∪ h5, ((r => a × r1))(h), ((r => a × r0))(h3), ls(r1, x0)(h5), ls(r0, x0)(h4), h2 ⊥ h5, h2 ⊥ h, h ⊥ h5, h1 ⊥ h4, h1 ⊥ h3, h3 ⊥ h4, r ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r], ∀ r. (r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2) ∧ (r ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r]), ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ h3 = h ∧ r0 = r1 |
r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2, h3 ∪ h4 ≠ h ∪ h5, ((r => a × r0))(h3), ((r => a × r1))(h), ls(r0, x0)(h4), ls(r1, x0)(h5), h3 ⊥ h4, h1 ⊥ h3, h1 ⊥ h4, h ⊥ h5, h2 ⊥ h, h2 ⊥ h5, r ∈ (h ∪ h5) ∪ h2 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r], ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6, ∀ r. (r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2) ∧ (r ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r]) ⊦ h3 = h ∧ r0 = r1
| r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2, h3 ∪ h4 ≠ h ∪ h5, ((r => a × r0))(h3), ((r => a × r1))(h), ls(r0, x0)(h4), ls(r1, x0)(h5), h3 ⊥ h4, h1 ⊥ h3, h1 ⊥ h4, h ⊥ h5, h2 ⊥ h, h2 ⊥ h5, r ∈ (h ∪ h5) ∪ h2 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r], ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6, ∀ r. (r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2) ∧ (r ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r]) ⊦ h3 = h ∧ r0 = r1 |
r ∈ h0 ∪ h1 ⊦ h0 ⊥ h1 → (h0 ∪ h1)[r] = (r ∈ h0 ⊃ h0[r];h1[r])
r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2, h3 ∪ h4 ≠ h ∪ h5, ((r => a × r1))(h), ((r => a × r0))(h3), ls(r1, x0)(h5), ls(r0, x0)(h4), r ∈ (h3 ∪ h4) ∪ h1, h2 ⊥ h5, h2 ⊥ h, h ⊥ h5, h1 ⊥ h4, h1 ⊥ h3, h3 ⊥ h4, h3 ∪ h4 ⊥ h1, r ∈ (h ∪ h5) ∪ h2 → (r ∈ h3 ∪ h4 ⊃ (h3 ∪ h4)[r];h1[r]) = ((h ∪ h5) ∪ h2)[r], ∀ r. (r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2) ∧ (r ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r]), ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ h3 = h ∧ r0 = r1
Used simplifier rules: ⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1); (s) ⊦ ((r => o))(h) → r ∈ h; (s) ⊦ h1 ⊥ h2 → (h1 ∪ h2 ⊥ h0 ↔ h0 ⊥ h1 ∧ h0 ⊥ h2); (ws) Used terms: r, h1, h3 ∪ h4
| r ∈ h0 ∪ h1 ⊦ h0 ⊥ h1 → (h0 ∪ h1)[r] = (r ∈ h0 ⊃ h0[r];h1[r]) |
| r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2, h3 ∪ h4 ≠ h ∪ h5, ((r => a × r1))(h), ((r => a × r0))(h3), ls(r1, x0)(h5), ls(r0, x0)(h4), r ∈ (h3 ∪ h4) ∪ h1, h2 ⊥ h5, h2 ⊥ h, h ⊥ h5, h1 ⊥ h4, h1 ⊥ h3, h3 ⊥ h4, h3 ∪ h4 ⊥ h1, r ∈ (h ∪ h5) ∪ h2 → (r ∈ h3 ∪ h4 ⊃ (h3 ∪ h4)[r];h1[r]) = ((h ∪ h5) ∪ h2)[r], ∀ r. (r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2) ∧ (r ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r]), ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ h3 = h ∧ r0 = r1 |
h3[r] = ((h ∪ h5) ∪ h2)[r], h3 ∪ h4 ≠ h ∪ h5, ((r => a × r0))(h3), ((r => a × r1))(h), ls(r0, x0)(h4), ls(r1, x0)(h5), r ∈ (h3 ∪ h4) ∪ h1, r ∈ (h ∪ h5) ∪ h2, h3 ⊥ h4, h1 ⊥ h3, h1 ⊥ h4, h ⊥ h5, h2 ⊥ h, h2 ⊥ h5, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6, ∀ r. (r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2) ∧ (r ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r]) ⊦ h3 = h ∧ r0 = r1
Used simplifier rules: ⊦ ((r => o))(h) → r ∈ h; (s) r ∈ h0 ∪ h1 ⊦ h0 ⊥ h1 → (h0 ∪ h1)[r] = (r ∈ h0 ⊃ h0[r];h1[r]); (s) ⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1); (s) ⊦ h1 ⊥ h2 → (h1 ∪ h2 ⊥ h0 ↔ h0 ⊥ h1 ∧ h0 ⊥ h2); (ws)
| h3[r] = ((h ∪ h5) ∪ h2)[r], h3 ∪ h4 ≠ h ∪ h5, ((r => a × r0))(h3), ((r => a × r1))(h), ls(r0, x0)(h4), ls(r1, x0)(h5), r ∈ (h3 ∪ h4) ∪ h1, r ∈ (h ∪ h5) ∪ h2, h3 ⊥ h4, h1 ⊥ h3, h1 ⊥ h4, h ⊥ h5, h2 ⊥ h, h2 ⊥ h5, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6, ∀ r. (r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2) ∧ (r ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r]) ⊦ h3 = h ∧ r0 = r1 |
r ∈ h0 ∪ h1 ⊦ h0 ⊥ h1 → (h0 ∪ h1)[r] = (r ∈ h0 ⊃ h0[r];h1[r])
h3[r] = (r ∈ h ∪ h5 ⊃ (h ∪ h5)[r];h2[r]), h3 ∪ h4 ≠ h ∪ h5, ((r => a × r1))(h), ((r => a × r0))(h3), ls(r1, x0)(h5), ls(r0, x0)(h4), r ∈ (h3 ∪ h4) ∪ h1, r ∈ (h ∪ h5) ∪ h2, h2 ⊥ h5, h2 ⊥ h, h ⊥ h5, h1 ⊥ h4, h1 ⊥ h3, h3 ⊥ h4, h ∪ h5 ⊥ h2, ∀ r. (r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2) ∧ (r ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r]), ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ h3 = h ∧ r0 = r1
Used simplifier rules: ⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1); (s) ⊦ ((r => o))(h) → r ∈ h; (s) ⊦ h1 ⊥ h2 → (h1 ∪ h2 ⊥ h0 ↔ h0 ⊥ h1 ∧ h0 ⊥ h2); (ws) Used terms: r, h2, h ∪ h5
| r ∈ h0 ∪ h1 ⊦ h0 ⊥ h1 → (h0 ∪ h1)[r] = (r ∈ h0 ⊃ h0[r];h1[r]) |
| h3[r] = (r ∈ h ∪ h5 ⊃ (h ∪ h5)[r];h2[r]), h3 ∪ h4 ≠ h ∪ h5, ((r => a × r1))(h), ((r => a × r0))(h3), ls(r1, x0)(h5), ls(r0, x0)(h4), r ∈ (h3 ∪ h4) ∪ h1, r ∈ (h ∪ h5) ∪ h2, h2 ⊥ h5, h2 ⊥ h, h ⊥ h5, h1 ⊥ h4, h1 ⊥ h3, h3 ⊥ h4, h ∪ h5 ⊥ h2, ∀ r. (r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2) ∧ (r ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r]), ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ h3 = h ∧ r0 = r1 |
h3[r] = h[r], h3 ∪ h4 ≠ h ∪ h5, ((r => a × r0))(h3), ((r => a × r1))(h), ls(r0, x0)(h4), ls(r1, x0)(h5), r ∈ (h ∪ h5) ∪ h2, r ∈ (h3 ∪ h4) ∪ h1, h3 ⊥ h4, h1 ⊥ h3, h1 ⊥ h4, h ⊥ h5, h2 ⊥ h, h2 ⊥ h5, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6, ∀ r. (r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2) ∧ (r ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r]) ⊦ h3 = h ∧ r0 = r1
Used simplifier rules: ⊦ h1 ⊥ h2 → (h1 ∪ h2 ⊥ h0 ↔ h0 ⊥ h1 ∧ h0 ⊥ h2); (ws) ⊦ ((r => o))(h) → r ∈ h; (s) r ∈ h0 ∪ h1 ⊦ h0 ⊥ h1 → (h0 ∪ h1)[r] = (r ∈ h0 ⊃ h0[r];h1[r]); (s) ⊦ h0 ⊥ h1 → (r ∈ h0 ∪ h1 ↔ r ∈ h0 ∨ r ∈ h1); (s)
| h3[r] = h[r], h3 ∪ h4 ≠ h ∪ h5, ((r => a × r0))(h3), ((r => a × r1))(h), ls(r0, x0)(h4), ls(r1, x0)(h5), r ∈ (h ∪ h5) ∪ h2, r ∈ (h3 ∪ h4) ∪ h1, h3 ⊥ h4, h1 ⊥ h3, h1 ⊥ h4, h ⊥ h5, h2 ⊥ h, h2 ⊥ h5, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6, ∀ r. (r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2) ∧ (r ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r]) ⊦ h3 = h ∧ r0 = r1 |
⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null
h3[r] = h[r], h = (∅ ++ r)[r, a × r1], r ≠ null, h3 ∪ h4 ≠ h ∪ h5, ((r => a × r0))(h3), ls(r1, x0)(h5), ls(r0, x0)(h4), r ∈ (h3 ∪ h4) ∪ h1, r ∈ (h ∪ h5) ∪ h2, h2 ⊥ h5, h2 ⊥ h, h ⊥ h5, h1 ⊥ h4, h1 ⊥ h3, h3 ⊥ h4, ∀ r. (r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2) ∧ (r ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r]), ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ h3 = h ∧ r0 = r1
Used terms: h, a × r1, r
| ⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null |
| h3[r] = h[r], h = (∅ ++ r)[r, a × r1], r ≠ null, h3 ∪ h4 ≠ h ∪ h5, ((r => a × r0))(h3), ls(r1, x0)(h5), ls(r0, x0)(h4), r ∈ (h3 ∪ h4) ∪ h1, r ∈ (h ∪ h5) ∪ h2, h2 ⊥ h5, h2 ⊥ h, h ⊥ h5, h1 ⊥ h4, h1 ⊥ h3, h3 ⊥ h4, ∀ r. (r ∈ (h3 ∪ h4) ∪ h1 ↔ r ∈ (h ∪ h5) ∪ h2) ∧ (r ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r] = ((h ∪ h5) ∪ h2)[r]), ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6 ⊦ h3 = h ∧ r0 = r1 |
h3[r] = a × r1, h3 ∪ h4 ≠ (∅ ++ r)[r, a × r1] ∪ h5, ((r => a × r0))(h3), ls(r0, x0)(h4), ls(r1, x0)(h5), r ∈ ((∅ ++ r)[r, a × r1] ∪ h5) ∪ h2, r ∈ (h3 ∪ h4) ∪ h1, h2 ⊥ h5, h3 ⊥ h4, h1 ⊥ h3, h1 ⊥ h4, ¬ r ∈ h5, ¬ r ∈ h2, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6, ∀ r0. (r0 ∈ (h3 ∪ h4) ∪ h1 ↔ r0 ∈ ((∅ ++ r)[r, a × r1] ∪ h5) ∪ h2) ∧ (r0 ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r0] = (((∅ ++ r)[r, a × r1] ∪ h5) ∪ h2)[r0]) ⊦ h3 = (∅ ++ r)[r, a × r1] ∧ r0 = r1
Used simplifier rules: ⊦ h ⊥ ∅; (s) r ≠ null, ¬ r ∈ h1 ⊦ h0 ⊥ (h1 ++ r)[r, o] ↔ h0 ⊥ h1 ∧ ¬ r ∈ h0; (ws) ⊦ ¬ r ∈ ∅; (s) ⊦ r ∈ h → r ≠ null; (s) r ≠ null ⊦ (∅ ++ r)[r, o] ⊥ h ↔ ¬ r ∈ h; (s) r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h; (s) ⊦ h[r0, o][r] = (r = r0 ∧ r0 ∈ h ⊃ o;h[r]); (s)
| h3[r] = a × r1, h3 ∪ h4 ≠ (∅ ++ r)[r, a × r1] ∪ h5, ((r => a × r0))(h3), ls(r0, x0)(h4), ls(r1, x0)(h5), r ∈ ((∅ ++ r)[r, a × r1] ∪ h5) ∪ h2, r ∈ (h3 ∪ h4) ∪ h1, h2 ⊥ h5, h3 ⊥ h4, h1 ⊥ h3, h1 ⊥ h4, ¬ r ∈ h5, ¬ r ∈ h2, ∀ h3, h4, h5, h6, r2. h3 ∪ h4 ≠ h5 ∪ h6 ∨ h3 = h5 ∨ ¬ ls(r2, x0)(h3) ∨ ¬ ls(r2, x0)(h5) ∨ ¬ h3 ⊥ h4 ∨ ¬ h5 ⊥ h6, ∀ r0. (r0 ∈ (h3 ∪ h4) ∪ h1 ↔ r0 ∈ ((∅ ++ r)[r, a × r1] ∪ h5) ∪ h2) ∧ (r0 ∈ (h3 ∪ h4) ∪ h1 → ((h3 ∪ h4) ∪ h1)[r0] = (((∅ ++ r)[r, a × r1] ∪ h5) ∪ h2)[r0]) ⊦ h3 = (∅ ++ r)[r, a × r1] ∧ r0 = r1 |
⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null
Used simplifier rules: ⊦ h[r0, o][r] = (r = r0 ∧ r0 ∈ h ⊃ o;h[r]); (s) r0 ≠ null, ¬ r0 ∈ h ⊦ r ∈ h ++ r0 ↔ r = r0 ∨ r ∈ h; (s) ⊦ a × r = a0 × r0 ↔ a = a0 ∧ r = r0; (ws) r ≠ null ⊦ (∅ ++ r)[r, o] ⊥ h ↔ ¬ r ∈ h; (s) ⊦ r ∈ h → r ≠ null; (s) ⊦ ¬ r ∈ ∅; (s) r ≠ null, ¬ r ∈ h1 ⊦ h0 ⊥ (h1 ++ r)[r, o] ↔ h0 ⊥ h1 ∧ ¬ r ∈ h0; (ws) ⊦ h ⊥ ∅; (s) Used terms: h3, a × r0, r
| ⊦ ((r => o))(h) ↔ h = (∅ ++ r)[r, o] ∧ r ≠ null |
The following image shows the proof tree of sequent calculus. The proved goal is at the bottom. You can click on the nodes to view additional rules. See here for details on colors in a proof tree.