| H2 ∪ H0 = H1 ∪ H, ls(r, a + x0)(H1), ls(r, a + x0)(H2), H1 ⊥ H, H2 ⊥ H0, ∀ H2, H0, H1, H, r. H2 ∪ H0 = H1 ∪ H ∧ ls(r, x0)(H2) ∧ ls(r, x0)(H1) ∧ H2 ⊥ H0 ∧ H1 ⊥ H → H2 = H1 ⊦ H2 = H1 |
H2 ∪ H0 = H1 ∪ H, ((r => a × r0 * ls(r0, x0)))(H2), ((r => a × r1 * ls(r1, x0)))(H1), H2 ⊥ H0, H1 ⊥ H, ∀ H2, H0, H1, H, r. H2 ∪ H0 = H1 ∪ H ∧ ls(r, x0)(H2) ∧ ls(r, x0)(H1) ∧ H2 ⊥ H0 ∧ H1 ⊥ H → H2 = H1 ⊦ H2 = H1
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)