Skip to content

Commit bacd8a5

Browse files
authored
[ add ] lemma relating Propositional and Setoid versions of Sublist (agda#2510)
* first attempt at implemeneting lemma * rvert previous commits; simplify proof using `Data.List.Relation.Binary.Sublist.Setoid.map` * revert: remove spurious `import`s * revert: remove spurious `import`s * use `variable`s * provisional: added version to `Propositional.Properties` for comparison * settle on `Propositional` version * tighten `import`s * remove explicit mention of `Setoid.Carrier`
1 parent d38e964 commit bacd8a5

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,11 @@ Additions to existing modules
324324
([] , [])
325325
```
326326

327+
* In `Data.List.Relation.Binary.Sublist.Propositional.Properties`:
328+
```agda
329+
⊆⇒⊆ₛ : (S : Setoid a ℓ) → as ⊆ bs → as (SetoidSublist.⊆ S) bs
330+
```
331+
327332
* In `Data.List.Relation.Unary.All.Properties`:
328333
```agda
329334
all⊆concat : (xss : List (List A)) → All (Sublist._⊆ concat xss) xss
@@ -404,6 +409,7 @@ Additions to existing modules
404409
* In `Data.List.Relation.Unary.All`:
405410
```agda
406411
search : Decidable P → ∀ xs → All (∁ P) xs ⊎ Any P xs
412+
```
407413

408414
* In `Data.List.Relation.Binary.Subset.Setoid.Properties`:
409415
```agda

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

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,14 @@ open import Data.List.Relation.Unary.Any.Properties
1616
using (here-injective; there-injective)
1717
open import Data.List.Relation.Binary.Sublist.Propositional
1818
hiding (map)
19+
import Data.List.Relation.Binary.Sublist.Setoid
20+
as SetoidSublist
1921
import Data.List.Relation.Binary.Sublist.Setoid.Properties
2022
as SetoidProperties
2123
open import Data.Product.Base using (∃; _,_; proj₂)
2224
open import Function.Base using (id; _∘_; _∘′_)
2325
open import Level using (Level)
26+
open import Relation.Binary.Bundles using (Setoid)
2427
open import Relation.Binary.Definitions using (_Respects_)
2528
open import Relation.Binary.PropositionalEquality.Core as ≡
2629
using (_≡_; refl; cong; _≗_; trans)
@@ -39,9 +42,24 @@ private
3942
-- Re-exporting setoid properties
4043

4144
module _ {A : Set a} where
42-
open SetoidProperties (setoid A) public
45+
open SetoidProperties (setoid A) public
4346
hiding (map⁺; ⊆-trans-idˡ; ⊆-trans-idʳ; ⊆-trans-assoc)
4447

48+
------------------------------------------------------------------------
49+
-- Relationship between _⊆_ and Setoid._⊆_
50+
------------------------------------------------------------------------
51+
52+
module _ (S : Setoid a ℓ) where
53+
54+
open Setoid S using (reflexive)
55+
open SetoidSublist S using () renaming (_⊆_ to _⊆ₛ_)
56+
57+
⊆⇒⊆ₛ : {as bs} as ⊆ bs as ⊆ₛ bs
58+
⊆⇒⊆ₛ = SetoidSublist.map (setoid _) reflexive
59+
60+
------------------------------------------------------------------------
61+
-- Functoriality of map
62+
4563
map⁺ : (f : A B) xs ⊆ ys map f xs ⊆ map f ys
4664
map⁺ f = SetoidProperties.map⁺ (setoid _) (setoid _) (cong f)
4765

0 commit comments

Comments
 (0)