Changelog

Concatenation of non-overlapping unique lists

1
2
3
4
5
6
7
8
mutual
  _++_⊣_ : (xs ys : UniqList) -> xs ⊄ ys -> UniqList
  [] ++ ys ⊣ p = ys
  (x ∷ xs ⊣ q) ++ ys ⊣ p = x ∷ xs ++ ys ⊣ ⊄-next {x} {xs} {q} {ys} p ⊣ (q ⊢++⊣ p x (λ e → proj₁ e PE.refl))

  _⊢++⊣_ : ∀ {xs ys i p} -> i ∉ xs -> i ∉ ys -> i ∉ (xs ++ ys ⊣ p)
  _⊢++⊣_ {[]} q r = r
  _⊢++⊣_ {x ∷ xs ⊣ o} {ys} {i} {p} (i≠x , i∉xs) i∉ys = i≠x , _⊢++⊣_ {xs} i∉xs i∉ys