| lref ∈ q.lebrefs ∪ (lref0 ≠ none ⊃ ∅ ++ lref0;∅), ∀ lref. lref ∈ q.lebrefs ↔ (∃ n. eq-entry(n, lref) ∈ q) ∧ lref ≠ none ⊦ #(q.lebrefs ∪ (lref0 ≠ none ⊃ ∅ ++ lref0;∅)) = 0, lref0 = none, q.lebrefs ∪ (∅ ++ lref0) = ∅, (∃ n. eq-entry(n, lref) = eq-entry(m, lref0) ∨ eq-entry(n, lref) ∈ q) ∧ lref ≠ none |
∀ lref. lref ∈ q.lebrefs ↔ (∃ n. eq-entry(n, lref) ∈ q) ∧ lref ≠ none, lref = lref0 ∨ lref ∈ q.lebrefs ⊦ #(q.lebrefs ++ lref0) = 0, lref0 = none, (∃ n. eq-entry(n, lref) = eq-entry(m, lref0) ∨ eq-entry(n, lref) ∈ q) ∧ lref ≠ none
Used simplifier rules: size-zero: ⊦ # s0 ≠ 0 → s0 ≠ ∅; (forward) from specification set-basic[lebrefset]% ⊦ lref ∈ s0 ++ lref0 ↔ lref = lref0 ∨ lref ∈ s0; (s)% ⊦ ∅ ≠ s0 ++ lref; (s)%unc: ⊦ s1 ∪ s2 = s2 ∪ s1; from specification set-union[lebrefset]%una: ⊦ (s2 ∪ s3) ∪ s4 = s2 ∪ s3 ∪ s4; from specification set-union[lebrefset]% ⊦ s0 ∪ ∅ = s0; (s)% ⊦ (s1 ++ lref) ∪ s2 = (s1 ∪ s2) ++ lref; (s)