| precise(aP(a)), ∀ a0. a0 ∈ s0 → precise(aP(a0)), ∀ s1, aP. # s1 < #(s0 ++ a) → (∀ a. a ∈ s1 → precise(aP(a))) → precise(aP ⊗_ s1) ⊦ precise(aP(a) * aP ⊗_ s0), a ∈ s0, ∀ a. a ∈ s0 → precise(aP(a)) |
precise(aP(a)), a0 ∈ s0, ∀ a0. a0 ∈ s0 → precise(aP(a0)), ∀ s1, aP. # s1 < #(s0 ++ a) → (∀ a. a ∈ s1 → precise(aP(a))) → precise(aP ⊗_ s1) ⊦ # s0 = 0, s0 = ∅, precise(aP(a) * aP ⊗_ s0), precise(aP(a0)), a ∈ s0
Used simplifier rules: size-zero-01: ⊦ s ≠ ∅ → # s ≠ 0; (forward) from specification set-basic%ne-01: ⊦ a ∈ s → s ≠ ∅; (forward) from specification set-basic