@@ -13,14 +13,14 @@ module Data.List.Relation.Binary.Sublist.Setoid.Properties
13
13
14
14
open import Data.List.Base hiding (_∷ʳ_)
15
15
open import Data.List.Relation.Unary.Any using (Any)
16
- open import Data.List.Relation.Binary.Sublist.Heterogeneous using () renaming (minimum to []⊆_)
17
16
import Data.Maybe.Relation.Unary.All as Maybe
18
17
open import Data.Nat.Base using (_≤_; _≥_)
19
18
import Data.Nat.Properties as ℕₚ
20
19
open import Data.Product using (∃; _,_; proj₂)
21
20
open import Function.Base
22
21
open import Function.Bundles using (_⇔_; _⤖_)
23
22
open import Level
23
+ open import Relation.Binary using () renaming (Decidable to Decidable₂)
24
24
open import Relation.Binary.PropositionalEquality using (_≡_; refl; cong)
25
25
open import Relation.Binary.Structures using (IsDecTotalOrder)
26
26
open import Relation.Unary using (Pred; Decidable; Irrelevant)
@@ -208,25 +208,23 @@ module _ {as bs : List A} where
208
208
------------------------------------------------------------------------
209
209
-- merge
210
210
211
- module Merge {ℓ′} ( _≤_ : Rel A ℓ′) (dto : IsDecTotalOrder _≈_ _ ≤_) where
211
+ module _ {ℓ′} { _≤_ : Rel A ℓ′} (_≤?_ : Decidable₂ _ ≤_) where
212
212
213
- open IsDecTotalOrder dto using (_≤?_)
214
-
215
- merge-is-superlistˡ : ∀ xs ys → xs ⊆ merge _≤?_ xs ys
216
- merge-is-superlistˡ [] ys = []⊆ ys
217
- merge-is-superlistˡ (x ∷ xs) [] = ⊆-refl
218
- merge-is-superlistˡ (x ∷ xs) (y ∷ ys)
219
- with x ≤? y | merge-is-superlistˡ xs (y ∷ ys)
220
- | merge-is-superlistˡ (x ∷ xs) ys
213
+ ⊆-mergeˡ : ∀ xs ys → xs ⊆ merge _≤?_ xs ys
214
+ ⊆-mergeˡ [] ys = minimum ys
215
+ ⊆-mergeˡ (x ∷ xs) [] = ⊆-refl
216
+ ⊆-mergeˡ (x ∷ xs) (y ∷ ys)
217
+ with x ≤? y | ⊆-mergeˡ xs (y ∷ ys)
218
+ | ⊆-mergeˡ (x ∷ xs) ys
221
219
... | yes x≤y | rec | _ = ≈-refl ∷ rec
222
220
... | no x≰y | _ | rec = y ∷ʳ rec
223
221
224
- merge-is-superlistʳ : ∀ xs ys → ys ⊆ merge _≤?_ xs ys
225
- merge-is-superlistʳ [] ys = ⊆-refl
226
- merge-is-superlistʳ (x ∷ xs) [] = []⊆ (merge _≤?_ (x ∷ xs) [])
227
- merge-is-superlistʳ (x ∷ xs) (y ∷ ys)
228
- with x ≤? y | merge-is-superlistʳ xs (y ∷ ys)
229
- | merge-is-superlistʳ (x ∷ xs) ys
222
+ ⊆-mergeʳ : ∀ xs ys → ys ⊆ merge _≤?_ xs ys
223
+ ⊆-mergeʳ [] ys = ⊆-refl
224
+ ⊆-mergeʳ (x ∷ xs) [] = minimum (merge _≤?_ (x ∷ xs) [])
225
+ ⊆-mergeʳ (x ∷ xs) (y ∷ ys)
226
+ with x ≤? y | ⊆-mergeʳ xs (y ∷ ys)
227
+ | ⊆-mergeʳ (x ∷ xs) ys
230
228
... | yes x≤y | rec | _ = x ∷ʳ rec
231
229
... | no x≰y | _ | rec = ≈-refl ∷ rec
232
230
0 commit comments