Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ add ] Module ⊆-Reasoning for Data.List.Relation.Binary.Sublist.* #2527

Merged
merged 13 commits into from
Jan 3, 2025
11 changes: 9 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -337,15 +337,22 @@ Additions to existing modules
([] , [])
```

* In `Data.List.Relation.Binary.Sublist.Heterogeneous.Properties`:
```agda
module ⊆-Reasoning (≲ : Preorder a e r)
```

* In `Data.List.Relation.Binary.Sublist.Propositional.Properties`:
```agda
⊆⇒⊆ₛ : (S : Setoid a ℓ) → as ⊆ bs → as (SetoidSublist.⊆ S) bs
```

* In `Data.List.Relation.Binary.Sublist.Setoid.Properties`:
```agda
concat⁺ : Sublist _⊆_ ass bss → concat ass ⊆ concat bss
all⊆concat : (xss : List (List A)) → All (Sublist._⊆ concat xss) xss
module ⊆-Reasoning
concat⁺ : Sublist _⊆_ ass bss → concat ass ⊆ concat bss
xs∈xss⇒xs⊆concat[xss] : xs ∈ xss → xs ⊆ concat xss
all⊆concat : (xss : List (List A)) → All (_⊆ concat xss) xss
```

* In `Data.List.Relation.Unary.All.Properties`:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ open import Relation.Binary.Definitions
open import Relation.Binary.Structures
using (IsPreorder; IsPartialOrder; IsDecPartialOrder)
open import Relation.Binary.PropositionalEquality.Core as ≡ using (_≡_)
import Relation.Binary.Reasoning.Preorder as ≲-Reasoning
open import Relation.Binary.Reasoning.Syntax

private
variable
Expand Down Expand Up @@ -470,6 +472,19 @@ decPoset ER-poset = record
{ isDecPartialOrder = isDecPartialOrder ER.isDecPartialOrder
} where module ER = DecPoset ER-poset

------------------------------------------------------------------------
-- Reasoning over sublists
------------------------------------------------------------------------

module ⊆-Reasoning (≲ : Preorder a e r) where

open ≲-Reasoning (preorder ≲) public
hiding (step-≈; step-≈˘; step-≈-⟩; step-≈-⟨; step-≲; step-∼)
renaming (≲-go to ⊆-go; ≈-go to ≋-go)

open ⊆-syntax _IsRelatedTo_ _IsRelatedTo_ ⊆-go public
open ≋-syntax _IsRelatedTo_ _IsRelatedTo_ ≋-go public

------------------------------------------------------------------------
-- Properties of disjoint sublists

Expand Down
15 changes: 15 additions & 0 deletions src/Data/List/Relation/Binary/Sublist/Setoid/Properties.agda
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ open import Level
open import Relation.Binary.Definitions using () renaming (Decidable to Decidable₂)
open import Relation.Binary.PropositionalEquality.Core as ≡
using (_≡_; refl; sym; cong; cong₂)
import Relation.Binary.Reasoning.Preorder as ≲-Reasoning
open import Relation.Binary.Reasoning.Syntax
open import Relation.Binary.Structures using (IsDecTotalOrder)
open import Relation.Unary using (Pred; Decidable; Universal; Irrelevant)
open import Relation.Nullary.Negation using (¬_)
Expand Down Expand Up @@ -102,6 +104,19 @@ module _ (≈-assoc : ∀ {w x y z} (p : w ≈ x) (q : x ≈ y) (r : y ≈ z)
⊆-trans-assoc [] [] [] = refl


------------------------------------------------------------------------
-- Reasoning over sublists
------------------------------------------------------------------------

module ⊆-Reasoning where

open ≲-Reasoning ⊆-preorder public
hiding (step-≈; step-≈˘; step-≈-⟩; step-≈-⟨; step-≲; step-∼)
renaming (≲-go to ⊆-go; ≈-go to ≋-go)

open ⊆-syntax _IsRelatedTo_ _IsRelatedTo_ ⊆-go public
open ≋-syntax _IsRelatedTo_ _IsRelatedTo_ ≋-go public

------------------------------------------------------------------------
-- Various functions' outputs are sublists
------------------------------------------------------------------------
Expand Down
Loading