| r ∈ rs ⊦ (r ==>(o0, a0) * hR)[rs, f(r; o1), g(r; a1)] ↔ (o0 = o1 ∧ a0 = a1) ∧ (r ==>_ * hR)[rs, f, g] |
¬((r ==>(o0, a0) * hR)[rs, f(r; o1), g(r; a1)] ↔ (o0 = o1 ∧ a0 = a1) ∧ (r ==>_ * hR)[rs, f, g]), r ∈ rs ⊦
| ¬((r ==>(o0, a0) * hR)[rs, f(r; o1), g(r; a1)] ↔ (o0 = o1 ∧ a0 = a1) ∧ (r ==>_ * hR)[rs, f, g]), r ∈ rs ⊦ |
# rs ≠ 0, ¬((r __=>(o0 ×× a0) * hR)[rs, λ r0. (r = r0 ⊃ o1;f(r0)) ×× (r = r0 ⊃ a1;g(r0))]__ ↔ o0 = o1 ∧ a0 = a1 ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__), rs ≠ ∅, r ∈ rs ⊦
Used simplifier rules: maplet-def: ⊦ r ==>(o, a) = r __=>(o ×× a); modifysep-def: ⊦ hP[rs, f, g] ↔ hP[rs, λ r. f(r) ×× g(r)]__; size-zero-01: ⊦ s ≠ ∅ → # s ≠ 0; (forward) from specification set-basic[refset] ne-01: ⊦ a ∈ s → s ≠ ∅; (forward) from specification set-basic[refset]
| # rs ≠ 0, ¬((r __=>(o0 ×× a0) * hR)[rs, λ r0. (r = r0 ⊃ o1;f(r0)) ×× (r = r0 ⊃ a1;g(r0))]__ ↔ o0 = o1 ∧ a0 = a1 ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__), rs ≠ ∅, r ∈ rs ⊦ |
r ∈ rs ⊦ (r __=>(o0) * hP)[rs, f(r; o1)]__ ↔ o0 = o1 ∧ (r ==>_ * hP)[rs, f]__
(r __=>(o0 ×× a0) * hR)[rs, (λ r. f(r) ×× g(r))(r; o1 ×× a1)]__ ↔ o0 ×× a0 = o1 ×× a1 ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__, # rs ≠ 0, ¬((r __=>(o0 ×× a0) * hR)[rs, λ r0. (r = r0 ⊃ o1;f(r0)) ×× (r = r0 ⊃ a1;g(r0))]__ ↔ o0 = o1 ∧ a0 = a1 ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__), rs ≠ ∅, r ∈ rs ⊦
Used terms: hR, r, o0 ×× a0, rs, o1 ×× a1, λ r. f(r) ×× g(r)
| r ∈ rs ⊦ (r __=>(o0) * hP)[rs, f(r; o1)]__ ↔ o0 = o1 ∧ (r ==>_ * hP)[rs, f]__ |
| (r __=>(o0 ×× a0) * hR)[rs, (λ r. f(r) ×× g(r))(r; o1 ×× a1)]__ ↔ o0 ×× a0 = o1 ×× a1 ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__, # rs ≠ 0, ¬((r __=>(o0 ×× a0) * hR)[rs, λ r0. (r = r0 ⊃ o1;f(r0)) ×× (r = r0 ⊃ a1;g(r0))]__ ↔ o0 = o1 ∧ a0 = a1 ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__), rs ≠ ∅, r ∈ rs ⊦ |
(r __=>(o0 ×× a0) * hR)[rs, λ r0. (r0 = r ⊃ o1 ×× a1;f(r0) ×× g(r0))]__ ↔ o0 ×× a0 = o1 ×× a1 ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__, # rs ≠ 0, ¬((r __=>(o0 ×× a0) * hR)[rs, λ r0. (r = r0 ⊃ o1;f(r0)) ×× (r = r0 ⊃ a1;g(r0))]__ ↔ o0 = o1 ∧ a0 = a1 ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__), rs ≠ ∅, r ∈ rs ⊦
| (r __=>(o0 ×× a0) * hR)[rs, λ r0. (r0 = r ⊃ o1 ×× a1;f(r0) ×× g(r0))]__ ↔ o0 ×× a0 = o1 ×× a1 ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__, # rs ≠ 0, ¬((r __=>(o0 ×× a0) * hR)[rs, λ r0. (r = r0 ⊃ o1;f(r0)) ×× (r = r0 ⊃ a1;g(r0))]__ ↔ o0 = o1 ∧ a0 = a1 ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__), rs ≠ ∅, r ∈ rs ⊦ |
⊦ obj ×× aux = obj0 ×× aux0 ↔ obj = obj0 ∧ aux = aux0
(r __=>(o0 ×× a0) * hR)[rs, λ r0. (r0 = r ⊃ o1 ×× a1;f(r0) ×× g(r0))]__ ↔ (o0 = o1 ∧ a0 = a1) ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__, # rs ≠ 0, ¬((r __=>(o0 ×× a0) * hR)[rs, λ r0. (r = r0 ⊃ o1;f(r0)) ×× (r = r0 ⊃ a1;g(r0))]__ ↔ o0 = o1 ∧ a0 = a1 ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__), rs ≠ ∅, r ∈ rs ⊦
Used terms: o0, a0, o1, a1
| ⊦ obj ×× aux = obj0 ×× aux0 ↔ obj = obj0 ∧ aux = aux0 |
| (r __=>(o0 ×× a0) * hR)[rs, λ r0. (r0 = r ⊃ o1 ×× a1;f(r0) ×× g(r0))]__ ↔ (o0 = o1 ∧ a0 = a1) ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__, # rs ≠ 0, ¬((r __=>(o0 ×× a0) * hR)[rs, λ r0. (r = r0 ⊃ o1;f(r0)) ×× (r = r0 ⊃ a1;g(r0))]__ ↔ o0 = o1 ∧ a0 = a1 ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__), rs ≠ ∅, r ∈ rs ⊦ |
(r __=>(o0 ×× a0) * hR)[rs, λ r0. (r0 = r ⊃ o1 ×× a1;f(r0) ×× g(r0))]__ ↔ o0 = o1 ∧ a0 = a1 ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__, # rs ≠ 0, ¬ ( (r __=>(o0 ×× a0) * hR)[rs, λ r0. (r = r0 ⊃ o1;f(r0)) ×× (r = r0 ⊃ a1;g(r0))]__ ↔ (r __=>(o0 ×× a0) * hR)[rs, λ r0. (r0 = r ⊃ o1 ×× a1;f(r0) ×× g(r0))]__), rs ≠ ∅, r ∈ rs ⊦
| (r __=>(o0 ×× a0) * hR)[rs, λ r0. (r0 = r ⊃ o1 ×× a1;f(r0) ×× g(r0))]__ ↔ o0 = o1 ∧ a0 = a1 ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__, # rs ≠ 0, ¬ ( (r __=>(o0 ×× a0) * hR)[rs, λ r0. (r = r0 ⊃ o1;f(r0)) ×× (r = r0 ⊃ a1;g(r0))]__ ↔ (r __=>(o0 ×× a0) * hR)[rs, λ r0. (r0 = r ⊃ o1 ×× a1;f(r0) ×× g(r0))]__), rs ≠ ∅, r ∈ rs ⊦ |
(r __=>(o0 ×× a0) * hR)[rs, λ r0. (r0 = r ⊃ o1 ×× a1;f(r0) ×× g(r0))]__ ↔ o0 = o1 ∧ a0 = a1 ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__, # rs ≠ 0, (λ r0. (r = r0 ⊃ o1;f(r0)) ×× (r = r0 ⊃ a1;g(r0))) ≠ (λ r0. (r0 = r ⊃ o1 ×× a1;f(r0) ×× g(r0))), rs ≠ ∅, r ∈ rs ⊦
| (r __=>(o0 ×× a0) * hR)[rs, λ r0. (r0 = r ⊃ o1 ×× a1;f(r0) ×× g(r0))]__ ↔ o0 = o1 ∧ a0 = a1 ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__, # rs ≠ 0, (λ r0. (r = r0 ⊃ o1;f(r0)) ×× (r = r0 ⊃ a1;g(r0))) ≠ (λ r0. (r0 = r ⊃ o1 ×× a1;f(r0) ×× g(r0))), rs ≠ ∅, r ∈ rs ⊦ |
(r __=>(o0 ×× a0) * hR)[rs, λ r0. (r0 = r ⊃ o1 ×× a1;f(r0) ×× g(r0))]__ ↔ o0 = o1 ∧ a0 = a1 ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__, # rs ≠ 0, rs ≠ ∅, (r = r0 ⊃ o1;f(r0)) ×× (r = r0 ⊃ a1;g(r0)) ≠ (r0 = r ⊃ o1 ×× a1;f(r0) ×× g(r0)), r ∈ rs ⊦
| (r __=>(o0 ×× a0) * hR)[rs, λ r0. (r0 = r ⊃ o1 ×× a1;f(r0) ×× g(r0))]__ ↔ o0 = o1 ∧ a0 = a1 ∧ (r ==>_ * hR)[rs, λ r. f(r) ×× g(r)]__, # rs ≠ 0, rs ≠ ∅, (r = r0 ⊃ o1;f(r0)) ×× (r = r0 ⊃ a1;g(r0)) ≠ (r0 = r ⊃ o1 ×× a1;f(r0) ×× g(r0)), r ∈ rs ⊦ |
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.