Skip to content

Commit 8813e04

Browse files
committed
Address Matthew's comment
1 parent b0662ad commit 8813e04

File tree

2 files changed

+26
-24
lines changed

2 files changed

+26
-24
lines changed

src/Data/List/Relation/Binary/Sublist/Setoid/Properties.agda

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ module Data.List.Relation.Binary.Sublist.Setoid.Properties
1313

1414
open import Data.List.Base hiding (_∷ʳ_)
1515
open import Data.List.Relation.Unary.Any using (Any)
16-
open import Data.List.Relation.Binary.Sublist.Heterogeneous using () renaming (minimum to []⊆_)
1716
import Data.Maybe.Relation.Unary.All as Maybe
1817
open import Data.Nat.Base using (_≤_; _≥_)
1918
import Data.Nat.Properties as ℕₚ
2019
open import Data.Product using (∃; _,_; proj₂)
2120
open import Function.Base
2221
open import Function.Bundles using (_⇔_; _⤖_)
2322
open import Level
23+
open import Relation.Binary using () renaming (Decidable to Decidable₂)
2424
open import Relation.Binary.PropositionalEquality using (_≡_; refl; cong)
2525
open import Relation.Binary.Structures using (IsDecTotalOrder)
2626
open import Relation.Unary using (Pred; Decidable; Irrelevant)
@@ -208,25 +208,23 @@ module _ {as bs : List A} where
208208
------------------------------------------------------------------------
209209
-- merge
210210

211-
module Merge {ℓ′} (_≤_ : Rel A ℓ′) (dto : IsDecTotalOrder _≈_ _≤_) where
211+
module _ {ℓ′} {_≤_ : Rel A ℓ′} (_≤?_ : Decidable₂ _≤_) where
212212

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
221219
... | yes x≤y | rec | _ = ≈-refl ∷ rec
222220
... | no x≰y | _ | rec = y ∷ʳ rec
223221

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
230228
... | yes x≤y | rec | _ = x ∷ʳ rec
231229
... | no x≰y | _ | rec = ≈-refl ∷ rec
232230

src/Data/List/Relation/Unary/Sorted/TotalOrder/Properties.agda

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ open import Data.List.Relation.Unary.AllPairs using (AllPairs)
1414
open import Data.List.Relation.Unary.Linked as Linked
1515
using (Linked; []; [-]; _∷_; _∷′_; head′; tail)
1616
import Data.List.Relation.Unary.Linked.Properties as Linked
17+
import Data.List.Relation.Binary.Sublist.Setoid as Sublist
1718
import Data.List.Relation.Binary.Sublist.Setoid.Properties as SublistProperties
1819
open import Data.List.Relation.Unary.Sorted.TotalOrder hiding (head)
1920

@@ -105,7 +106,7 @@ module _ (O : TotalOrder a ℓ₁ ℓ₂) where
105106
-- merge
106107

107108
module _ (DO : DecTotalOrder a ℓ₁ ℓ₂) where
108-
open DecTotalOrder DO renaming (totalOrder to O)
109+
open DecTotalOrder DO using (_≤_; _≤?_) renaming (totalOrder to O)
109110
open TotalOrderProperties O using (≰⇒≥)
110111

111112
private
@@ -128,14 +129,17 @@ module _ (DO : DecTotalOrder a ℓ₁ ℓ₂) where
128129
... | yes x≤y | rec | _ = merge-con (head′ rxs) (just x≤y) ∷′ rec
129130
... | no x≰y | _ | rec = merge-con (just (≰⇒≥ x≰y)) (head′ rys) ∷′ rec
130131

131-
-- Reexport merge-is-superlistˡʳ
132+
-- Reexport ⊆-mergeˡʳ
132133

133-
open
134-
SublistProperties.Merge
135-
(Preorder.Eq.setoid (DecTotalOrder.preorder DO))
136-
_≤_
137-
(DecTotalOrder.isDecTotalOrder DO)
138-
public using (merge-is-superlistˡ; merge-is-superlistʳ)
134+
S = Preorder.Eq.setoid (DecTotalOrder.preorder DO)
135+
open Sublist S using (_⊆_)
136+
module SP = SublistProperties S
137+
138+
⊆-mergeˡ : xs ys xs ⊆ merge _≤?_ xs ys
139+
⊆-mergeˡ = SP.⊆-mergeˡ _≤?_
140+
141+
⊆-mergeʳ : xs ys xs ⊆ merge _≤?_ xs ys
142+
⊆-mergeʳ = SP.⊆-mergeʳ _≤?_
139143

140144
------------------------------------------------------------------------
141145
-- filter

0 commit comments

Comments
 (0)