Skip to content

Commit f6d1924

Browse files
committed
Move sublist cospan stuff to new module SubList.Propositional.Slice
1 parent c0d188a commit f6d1924

File tree

3 files changed

+90
-74
lines changed

3 files changed

+90
-74
lines changed

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

Lines changed: 0 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -152,68 +152,3 @@ separateˡ (z ∷ʳ τ₁) (z ∷ʳ τ₂) = z ∷ₙ-Sep separateˡ τ₁
152152
separateˡ (z ∷ʳ τ₁) (y≡z ∷ τ₂) = y≡z ∷ᵣ-Sep separateˡ τ₁ τ₂
153153
separateˡ (x≡z ∷ τ₁) (z ∷ʳ τ₂) = x≡z ∷ₗ-Sep separateˡ τ₁ τ₂
154154
separateˡ (x≡z ∷ τ₁) (y≡z ∷ τ₂) = ∷-Sepˡ x≡z y≡z (separateˡ τ₁ τ₂)
155-
156-
------------------------------------------------------------------------
157-
-- A Union where the triangles commute is a
158-
-- Cospan in the slice category (_ ⊆ zs).
159-
160-
record IsCospan {xs ys zs : List A} {τ₁ : xs ⊆ zs} {τ₂ : ys ⊆ zs} (u : UpperBound τ₁ τ₂) : Set a where
161-
field
162-
tri₁ : ⊆-trans (UpperBound.inj₁ u) (UpperBound.sub u) ≡ τ₁
163-
tri₂ : ⊆-trans (UpperBound.inj₂ u) (UpperBound.sub u) ≡ τ₂
164-
165-
record Cospan {xs ys zs : List A} (τ₁ : xs ⊆ zs) (τ₂ : ys ⊆ zs) : Set a where
166-
field
167-
upperBound : UpperBound τ₁ τ₂
168-
isCospan : IsCospan upperBound
169-
170-
open UpperBound upperBound public
171-
open IsCospan isCospan public
172-
173-
open IsCospan
174-
open Cospan
175-
176-
module _
177-
{x : A} {xs ys zs : List A} {τ₁ : xs ⊆ zs} {τ₂ : ys ⊆ zs}
178-
{u : UpperBound τ₁ τ₂} (c : IsCospan u) where
179-
open UpperBound u
180-
open IsCospan c
181-
182-
∷ₙ-cospan : IsCospan (∷ₙ-ub u)
183-
∷ₙ-cospan = record
184-
{ tri₁ = cong (x ∷ʳ_) (c .tri₁)
185-
; tri₂ = cong (x ∷ʳ_) (c .tri₂)
186-
}
187-
188-
∷ₗ-cospan : IsCospan (refl {x = x} ∷ₗ-ub u)
189-
∷ₗ-cospan = record
190-
{ tri₁ = cong (refl ∷_) (c .tri₁)
191-
; tri₂ = cong (x ∷ʳ_) (c .tri₂)
192-
}
193-
194-
∷ᵣ-cospan : IsCospan (refl {x = x} ∷ᵣ-ub u)
195-
∷ᵣ-cospan = record
196-
{ tri₁ = cong (x ∷ʳ_) (c .tri₁)
197-
; tri₂ = cong (refl ∷_) (c .tri₂)
198-
}
199-
200-
∷-cospan : IsCospan (refl {x = x} , refl {x = x} ∷-ub u)
201-
∷-cospan = record
202-
{ tri₁ = cong (refl ∷_) (c .tri₁)
203-
; tri₂ = cong (refl ∷_) (c .tri₂)
204-
}
205-
206-
⊆-upper-bound-is-cospan : {xs ys zs : List A} (τ₁ : xs ⊆ zs) (τ₂ : ys ⊆ zs)
207-
IsCospan (⊆-upper-bound τ₁ τ₂)
208-
⊆-upper-bound-is-cospan [] [] = record { tri₁ = refl ; tri₂ = refl }
209-
⊆-upper-bound-is-cospan (z ∷ʳ τ₁) (.z ∷ʳ τ₂) = ∷ₙ-cospan (⊆-upper-bound-is-cospan τ₁ τ₂)
210-
⊆-upper-bound-is-cospan (z ∷ʳ τ₁) (refl ∷ τ₂) = ∷ᵣ-cospan (⊆-upper-bound-is-cospan τ₁ τ₂)
211-
⊆-upper-bound-is-cospan (refl ∷ τ₁) (z ∷ʳ τ₂) = ∷ₗ-cospan (⊆-upper-bound-is-cospan τ₁ τ₂)
212-
⊆-upper-bound-is-cospan (refl ∷ τ₁) (refl ∷ τ₂) = ∷-cospan (⊆-upper-bound-is-cospan τ₁ τ₂)
213-
214-
⊆-upper-bound-cospan : {xs ys zs : List A} (τ₁ : xs ⊆ zs) (τ₂ : ys ⊆ zs)
215-
Cospan τ₁ τ₂
216-
⊆-upper-bound-cospan τ₁ τ₂ = record
217-
{ upperBound = ⊆-upper-bound τ₁ τ₂
218-
; isCospan = ⊆-upper-bound-is-cospan τ₁ τ₂
219-
}

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

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
-- The Agda standard library
33
--
44
-- This module is DEPRECATED.
5-
-- Please use `Data.List.Relation.Binary.Sublist.Propositional` instead.
5+
-- Please use `Data.List.Relation.Binary.Sublist.Propositional.Slice`
6+
-- instead.
67
------------------------------------------------------------------------
78

89
{-# OPTIONS --cubical-compatible --safe #-}
@@ -12,20 +13,21 @@ module Data.List.Relation.Binary.Sublist.Propositional.Disjoint
1213

1314
{-# WARNING_ON_IMPORT
1415
"Data.List.Relation.Binary.Sublist.Propositional.Disjoint was deprecated in v2.1.
15-
Use Data.List.Relation.Binary.Sublist.Propositional instead."
16+
Use Data.List.Relation.Binary.Sublist.Propositional.Slice instead."
1617
#-}
1718

1819
open import Data.List.Base using (List)
19-
import Data.List.Relation.Binary.Sublist.Propositional as SLP
20-
open SLP using
20+
open import Data.List.Relation.Binary.Sublist.Propositional using
2121
( _⊆_; _∷_; _∷ʳ_
22-
; Disjoint; ⊆-disjoint-union
23-
; ⊆-upper-bound-is-cospan; ⊆-upper-bound-cospan; _∷ₙ_; _∷ₗ_; _∷ᵣ_
22+
; Disjoint; ⊆-disjoint-union; _∷ₙ_; _∷ₗ_; _∷ᵣ_
2423
)
24+
import Data.List.Relation.Binary.Sublist.Propositional.Slice as SPSlice
2525
open import Relation.Binary.PropositionalEquality.Core using (_≡_; refl; cong)
2626

27+
open SPSlice using (⊆-upper-bound-is-cospan; ⊆-upper-bound-cospan)
28+
2729
-- For backward compatibility reexport these:
28-
open SLP public using ( IsCospan; Cospan )
30+
open SPSlice public using ( IsCospan; Cospan )
2931

3032
open IsCospan
3133
open Cospan
@@ -62,10 +64,10 @@ module _
6264

6365
{-# WARNING_ON_USAGE ⊆-disjoint-union-is-cospan
6466
"Warning: ⊆-disjoint-union-is-cospan was deprecated in v2.1.
65-
Please use `⊆-upper-bound-is-cospan` from `Data.List.Relation.Binary.Sublist.Propositional` instead."
67+
Please use `⊆-upper-bound-is-cospan` from `Data.List.Relation.Binary.Sublist.Propositional.Slice` instead."
6668
#-}
6769

6870
{-# WARNING_ON_USAGE ⊆-disjoint-union-cospan
6971
"Warning: ⊆-disjoint-union-cospan was deprecated in v2.1.
70-
Please use `⊆-upper-bound-cospan` from `Data.List.Relation.Binary.Sublist.Propositional` instead."
72+
Please use `⊆-upper-bound-cospan` from `Data.List.Relation.Binary.Sublist.Propositional.Slice` instead."
7173
#-}
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
------------------------------------------------------------------------
2+
-- The Agda standard library
3+
--
4+
-- Slices in the propositional sublist category.
5+
------------------------------------------------------------------------
6+
7+
{-# OPTIONS --cubical-compatible --safe #-}
8+
9+
module Data.List.Relation.Binary.Sublist.Propositional.Slice
10+
{a} {A : Set a} where
11+
12+
open import Data.List.Base using (List)
13+
open import Data.List.Relation.Binary.Sublist.Propositional
14+
open import Relation.Binary.PropositionalEquality
15+
16+
------------------------------------------------------------------------
17+
-- A Union where the triangles commute is a
18+
-- Cospan in the slice category (_ ⊆ zs).
19+
20+
record IsCospan {xs ys zs : List A} {τ₁ : xs ⊆ zs} {τ₂ : ys ⊆ zs} (u : UpperBound τ₁ τ₂) : Set a where
21+
field
22+
tri₁ : ⊆-trans (UpperBound.inj₁ u) (UpperBound.sub u) ≡ τ₁
23+
tri₂ : ⊆-trans (UpperBound.inj₂ u) (UpperBound.sub u) ≡ τ₂
24+
25+
record Cospan {xs ys zs : List A} (τ₁ : xs ⊆ zs) (τ₂ : ys ⊆ zs) : Set a where
26+
field
27+
upperBound : UpperBound τ₁ τ₂
28+
isCospan : IsCospan upperBound
29+
30+
open UpperBound upperBound public
31+
open IsCospan isCospan public
32+
33+
open IsCospan
34+
open Cospan
35+
36+
module _
37+
{x : A} {xs ys zs : List A} {τ₁ : xs ⊆ zs} {τ₂ : ys ⊆ zs}
38+
{u : UpperBound τ₁ τ₂} (c : IsCospan u) where
39+
open UpperBound u
40+
open IsCospan c
41+
42+
∷ₙ-cospan : IsCospan (∷ₙ-ub u)
43+
∷ₙ-cospan = record
44+
{ tri₁ = cong (x ∷ʳ_) (c .tri₁)
45+
; tri₂ = cong (x ∷ʳ_) (c .tri₂)
46+
}
47+
48+
∷ₗ-cospan : IsCospan (refl {x = x} ∷ₗ-ub u)
49+
∷ₗ-cospan = record
50+
{ tri₁ = cong (refl ∷_) (c .tri₁)
51+
; tri₂ = cong (x ∷ʳ_) (c .tri₂)
52+
}
53+
54+
∷ᵣ-cospan : IsCospan (refl {x = x} ∷ᵣ-ub u)
55+
∷ᵣ-cospan = record
56+
{ tri₁ = cong (x ∷ʳ_) (c .tri₁)
57+
; tri₂ = cong (refl ∷_) (c .tri₂)
58+
}
59+
60+
∷-cospan : IsCospan (refl {x = x} , refl {x = x} ∷-ub u)
61+
∷-cospan = record
62+
{ tri₁ = cong (refl ∷_) (c .tri₁)
63+
; tri₂ = cong (refl ∷_) (c .tri₂)
64+
}
65+
66+
⊆-upper-bound-is-cospan : {xs ys zs : List A} (τ₁ : xs ⊆ zs) (τ₂ : ys ⊆ zs)
67+
IsCospan (⊆-upper-bound τ₁ τ₂)
68+
⊆-upper-bound-is-cospan [] [] = record { tri₁ = refl ; tri₂ = refl }
69+
⊆-upper-bound-is-cospan (z ∷ʳ τ₁) (.z ∷ʳ τ₂) = ∷ₙ-cospan (⊆-upper-bound-is-cospan τ₁ τ₂)
70+
⊆-upper-bound-is-cospan (z ∷ʳ τ₁) (refl ∷ τ₂) = ∷ᵣ-cospan (⊆-upper-bound-is-cospan τ₁ τ₂)
71+
⊆-upper-bound-is-cospan (refl ∷ τ₁) (z ∷ʳ τ₂) = ∷ₗ-cospan (⊆-upper-bound-is-cospan τ₁ τ₂)
72+
⊆-upper-bound-is-cospan (refl ∷ τ₁) (refl ∷ τ₂) = ∷-cospan (⊆-upper-bound-is-cospan τ₁ τ₂)
73+
74+
⊆-upper-bound-cospan : {xs ys zs : List A} (τ₁ : xs ⊆ zs) (τ₂ : ys ⊆ zs)
75+
Cospan τ₁ τ₂
76+
⊆-upper-bound-cospan τ₁ τ₂ = record
77+
{ upperBound = ⊆-upper-bound τ₁ τ₂
78+
; isCospan = ⊆-upper-bound-is-cospan τ₁ τ₂
79+
}

0 commit comments

Comments
 (0)