Skip to content

Commit f1b6761

Browse files
authored
Merge branch 'master' into javierdiaz72/unique-map-elim
2 parents ac6c1a4 + 4b3bb54 commit f1b6761

File tree

601 files changed

+3372
-2258
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

601 files changed

+3372
-2258
lines changed

.github/workflows/haskell-ci.yml

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,35 +8,24 @@
88
#
99
# For more information, see https://github.com/haskell-CI/haskell-ci
1010
#
11-
# version: 0.19.20241223
11+
# version: 0.19.20250506
1212
#
13-
# REGENDATA ("0.19.20241223",["github","--no-cabal-check","agda-stdlib-utils.cabal"])
13+
# REGENDATA ("0.19.20250506",["github","--no-cabal-check","agda-stdlib-utils.cabal"])
1414
#
1515
name: Haskell-CI
1616
on:
1717
push:
1818
branches:
1919
- master
2020
- experimental
21-
paths:
22-
- .github/workflows/haskell-ci.yml
23-
- agda-stdlib-utils.cabal
24-
- cabal.haskell-ci
25-
- "*.hs"
2621
pull_request:
2722
branches:
2823
- master
2924
- experimental
30-
paths:
31-
- .github/workflows/haskell-ci.yml
32-
- agda-stdlib-utils.cabal
33-
- cabal.haskell-ci
34-
- "*.hs"
35-
merge_group:
3625
jobs:
3726
linux:
3827
name: Haskell-CI - Linux - ${{ matrix.compiler }}
39-
runs-on: ubuntu-20.04
28+
runs-on: ubuntu-24.04
4029
timeout-minutes:
4130
60
4231
container:
@@ -45,24 +34,24 @@ jobs:
4534
strategy:
4635
matrix:
4736
include:
48-
- compiler: ghc-9.12.1
37+
- compiler: ghc-9.12.2
4938
compilerKind: ghc
50-
compilerVersion: 9.12.1
39+
compilerVersion: 9.12.2
5140
setup-method: ghcup
5241
allow-failure: false
53-
- compiler: ghc-9.10.1
42+
- compiler: ghc-9.10.2
5443
compilerKind: ghc
55-
compilerVersion: 9.10.1
44+
compilerVersion: 9.10.2
5645
setup-method: ghcup
5746
allow-failure: false
5847
- compiler: ghc-9.8.4
5948
compilerKind: ghc
6049
compilerVersion: 9.8.4
6150
setup-method: ghcup
6251
allow-failure: false
63-
- compiler: ghc-9.6.6
52+
- compiler: ghc-9.6.7
6453
compilerKind: ghc
65-
compilerVersion: 9.6.6
54+
compilerVersion: 9.6.7
6655
setup-method: ghcup
6756
allow-failure: false
6857
- compiler: ghc-9.4.8
@@ -104,12 +93,12 @@ jobs:
10493
- name: Install GHCup
10594
run: |
10695
mkdir -p "$HOME/.ghcup/bin"
107-
curl -sL https://downloads.haskell.org/ghcup/0.1.30.0/x86_64-linux-ghcup-0.1.30.0 > "$HOME/.ghcup/bin/ghcup"
96+
curl -sL https://downloads.haskell.org/ghcup/0.1.50.1/x86_64-linux-ghcup-0.1.50.1 > "$HOME/.ghcup/bin/ghcup"
10897
chmod a+x "$HOME/.ghcup/bin/ghcup"
10998
- name: Install cabal-install
11099
run: |
111-
"$HOME/.ghcup/bin/ghcup" install cabal 3.14.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
112-
echo "CABAL=$HOME/.ghcup/bin/cabal-3.14.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
100+
"$HOME/.ghcup/bin/ghcup" install cabal 3.14.2.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
101+
echo "CABAL=$HOME/.ghcup/bin/cabal-3.14.2.0 -vnormal+nowrap" >> "$GITHUB_ENV"
113102
- name: Install GHC (GHCup)
114103
if: matrix.setup-method == 'ghcup'
115104
run: |

CHANGELOG.md

Lines changed: 203 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,25 @@ Highlights
99
Bug-fixes
1010
---------
1111

12+
* In `Algebra.Apartness.Structures`, renamed `sym` from `IsApartnessRelation`
13+
to `#-sym` in order to avoid overloaded projection.
14+
`irrefl` and `cotrans` are similarly renamed for the sake of consistency.
15+
16+
* In `Algebra.Definitions.RawMagma` and `Relation.Binary.Construct.Interior.Symmetric`,
17+
the record constructors `_,_` incorrectly had no declared fixity. They have been given
18+
the fixity `infixr 4 _,_`, consistent with that of `Data.Product.Base`.
19+
20+
* In `Data.Product.Function.Dependent.Setoid`, `left-inverse` defined a
21+
`RightInverse`.
22+
This has been deprecated in favor or `rightInverse`, and a corrected (and
23+
correctly-named) function `leftInverse` has been added.
24+
25+
* The implementation of `_IsRelatedTo_` in `Relation.Binary.Reasoning.Base.Partial`
26+
has been modified to correctly support equational reasoning at the beginning and the end.
27+
The detail of this issue is described in [#2677](https://github.com/agda/agda-stdlib/pull/2677). Since the names of constructors
28+
of `_IsRelatedTo_` are changed and the reduction behaviour of reasoning steps
29+
are changed, this modification is non-backwards compatible.
30+
1231
Non-backwards compatible changes
1332
--------------------------------
1433

@@ -20,6 +39,9 @@ Non-backwards compatible changes
2039
Minor improvements
2140
------------------
2241

42+
* Moved the concept `Irrelevant` of irrelevance (h-proposition) from `Relation.Nullary`
43+
to its own dedicated module `Relation.Nullary.Irrelevant`.
44+
2345
Deprecated modules
2446
------------------
2547

@@ -32,14 +54,32 @@ Deprecated names
3254
_∤∤_ ↦ _∦_
3355
```
3456

35-
* In `Algebra.Module.Consequences
57+
* In `Algebra.Lattice.Properties.BooleanAlgebra`
58+
```agda
59+
⊥≉⊤ ↦ ¬⊥≈⊤
60+
⊤≉⊥ ↦ ¬⊤≈⊥
61+
```
62+
63+
* In `Algebra.Module.Consequences`
3664
```agda
3765
*ₗ-assoc+comm⇒*ᵣ-assoc ↦ *ₗ-assoc∧comm⇒*ᵣ-assoc
3866
*ₗ-assoc+comm⇒*ₗ-*ᵣ-assoc ↦ *ₗ-assoc∧comm⇒*ₗ-*ᵣ-assoc
3967
*ᵣ-assoc+comm⇒*ₗ-assoc ↦ *ᵣ-assoc∧comm⇒*ₗ-assoc
4068
*ₗ-assoc+comm⇒*ₗ-*ᵣ-assoc ↦ *ₗ-assoc∧comm⇒*ₗ-*ᵣ-assoc
4169
```
4270

71+
* In `Algebra.Modules.Structures.IsLeftModule`:
72+
```agda
73+
uniqueˡ‿⁻ᴹ ↦ Algebra.Module.Properties.LeftModule.inverseˡ-uniqueᴹ
74+
uniqueʳ‿⁻ᴹ ↦ Algebra.Module.Properties.LeftModule.inverseʳ-uniqueᴹ
75+
```
76+
77+
* In `Algebra.Modules.Structures.IsRightModule`:
78+
```agda
79+
uniqueˡ‿⁻ᴹ ↦ Algebra.Module.Properties.RightModule.inverseˡ-uniqueᴹ
80+
uniqueʳ‿⁻ᴹ ↦ Algebra.Module.Properties.RightModule.inverseʳ-uniqueᴹ
81+
```
82+
4383
* In `Algebra.Properties.Magma.Divisibility`:
4484
```agda
4585
∣∣-sym ↦ ∥-sym
@@ -50,18 +90,35 @@ Deprecated names
5090
∤∤-respˡ-≈ ↦ ∦-respˡ-≈
5191
∤∤-respʳ-≈ ↦ ∦-respʳ-≈
5292
∤∤-resp-≈ ↦ ∦-resp-≈
93+
∣-respʳ-≈ ↦ ∣ʳ-respʳ-≈
94+
∣-respˡ-≈ ↦ ∣ʳ-respˡ-≈
95+
∣-resp-≈ ↦ ∣ʳ-resp-≈
96+
x∣yx ↦ x∣ʳyx
97+
xy≈z⇒y∣z ↦ xy≈z⇒y∣ʳz
5398
```
5499

55100
* In `Algebra.Properties.Monoid.Divisibility`:
56101
```agda
57102
∣∣-refl ↦ ∥-refl
58103
∣∣-reflexive ↦ ∥-reflexive
59104
∣∣-isEquivalence ↦ ∥-isEquivalence
105+
ε∣_ ↦ ε∣ʳ_
106+
∣-refl ↦ ∣ʳ-refl
107+
∣-reflexive ↦ ∣ʳ-reflexive
108+
∣-isPreorder ↦ ∣ʳ-isPreorder
109+
∣-preorder ↦ ∣ʳ-preorder
60110
```
61111

62112
* In `Algebra.Properties.Semigroup.Divisibility`:
63113
```agda
64114
∣∣-trans ↦ ∥-trans
115+
∣-trans ↦ ∣ʳ-trans
116+
```
117+
118+
* In `Algebra.Structures.Group`:
119+
```agda
120+
uniqueˡ-⁻¹ ↦ Algebra.Properties.Group.inverseˡ-unique
121+
uniqueʳ-⁻¹ ↦ Algebra.Properties.Group.inverseʳ-unique
65122
```
66123

67124
* In `Data.List.Base`:
@@ -88,13 +145,28 @@ Deprecated names
88145
product-↭ ↦ Data.Nat.ListAction.Properties.product-↭
89146
```
90147

148+
* In `Data.Product.Function.Dependent.Setoid`:
149+
```agda
150+
left-inverse ↦ rightInverse
151+
```
152+
91153
New modules
92154
-----------
93155

156+
* `Algebra.Module.Properties.{Bimodule|LeftModule|RightModule}`.
157+
94158
* `Data.List.Base.{and|or|any|all}` have been lifted out into `Data.Bool.ListAction`.
95159

96160
* `Data.List.Base.{sum|product}` and their properties have been lifted out into `Data.Nat.ListAction` and `Data.Nat.ListAction.Properties`.
97161

162+
* `Data.List.Relation.Binary.Prefix.Propositional.Properties` showing the equivalence to left divisibility induced by the list monoid.
163+
164+
* `Data.List.Relation.Binary.Suffix.Propositional.Properties` showing the equivalence to right divisibility induced by the list monoid.
165+
166+
* `Data.Sign.Show` to show a sign
167+
168+
* `Relation.Binary.Properties.PartialSetoid` to systematise properties of a PER
169+
98170
Additions to existing modules
99171
-----------------------------
100172

@@ -127,6 +199,135 @@ Additions to existing modules
127199
commutativeRing : CommutativeRing c ℓ → CommutativeRing (a ⊔ c) (a ⊔ ℓ)
128200
```
129201

202+
* In `Algebra.Modules.Properties`:
203+
```agda
204+
inverseˡ-uniqueᴹ : x +ᴹ y ≈ 0ᴹ → x ≈ -ᴹ y
205+
inverseʳ-uniqueᴹ : x +ᴹ y ≈ 0ᴹ → y ≈ -ᴹ x
206+
```
207+
208+
* In `Algebra.Properties.Magma.Divisibility`:
209+
```agda
210+
∣ˡ-respʳ-≈ : _∣ˡ_ Respectsʳ _≈_
211+
∣ˡ-respˡ-≈ : _∣ˡ_ Respectsˡ _≈_
212+
∣ˡ-resp-≈ : _∣ˡ_ Respects₂ _≈_
213+
x∣ˡxy : ∀ x y → x ∣ˡ x ∙ y
214+
xy≈z⇒x∣ˡz : ∀ x y {z} → x ∙ y ≈ z → x ∣ˡ z
215+
```
216+
217+
* In `Algebra.Properties.Monoid.Divisibility`:
218+
```agda
219+
ε∣ˡ_ : ∀ x → ε ∣ˡ x
220+
∣ˡ-refl : Reflexive _∣ˡ_
221+
∣ˡ-reflexive : _≈_ ⇒ _∣ˡ_
222+
∣ˡ-isPreorder : IsPreorder _≈_ _∣ˡ_
223+
∣ˡ-preorder : Preorder a ℓ _
224+
```
225+
226+
* In `Algebra.Properties.Semigroup.Divisibility`:
227+
```agda
228+
∣ˡ-trans : Transitive _∣ˡ_
229+
x∣ʳy⇒x∣ʳzy : x ∣ʳ y → x ∣ʳ z ∙ y
230+
x∣ʳy⇒xz∣ʳyz : x ∣ʳ y → x ∙ z ∣ʳ y ∙ z
231+
x∣ˡy⇒zx∣ˡzy : x ∣ˡ y → z ∙ x ∣ˡ z ∙ y
232+
x∣ˡy⇒x∣ˡyz : x ∣ˡ y → x ∣ˡ y ∙ z
233+
```
234+
235+
* In `Algebra.Properties.CommutativeSemigroup.Divisibility`:
236+
```agda
237+
∙-cong-∣ : x ∣ y → a ∣ b → x ∙ a ∣ y ∙ b
238+
```
239+
240+
* In `Data.Fin.Subset`:
241+
```agda
242+
_⊇_ : Subset n → Subset n → Set
243+
_⊉_ : Subset n → Subset n → Set
244+
_⊃_ : Subset n → Subset n → Set
245+
_⊅_ : Subset n → Subset n → Set
246+
247+
```
248+
249+
* In `Data.Fin.Subset.Induction`:
250+
```agda
251+
⊃-Rec : RecStruct (Subset n) ℓ ℓ
252+
⊃-wellFounded : WellFounded _⊃_
253+
```
254+
255+
* In `Data.Fin.Subset.Properties`
256+
```agda
257+
p⊆q⇒∁p⊇∁q : p ⊆ q → ∁ p ⊇ ∁ q
258+
∁p⊆∁q⇒p⊇q : ∁ p ⊆ ∁ q → p ⊇ q
259+
p⊂q⇒∁p⊃∁q : p ⊂ q → ∁ p ⊃ ∁ q
260+
∁p⊂∁q⇒p⊃q : ∁ p ⊂ ∁ q → p ⊃ q
261+
```
262+
263+
* In `Data.List.Properties`:
264+
```agda
265+
map-applyUpTo : ∀ (f : ℕ → A) (g : A → B) n → map g (applyUpTo f n) ≡ applyUpTo (g ∘ f) n
266+
map-applyDownFrom : ∀ (f : ℕ → A) (g : A → B) n → map g (applyDownFrom f n) ≡ applyDownFrom (g ∘ f) n
267+
map-upTo : ∀ (f : ℕ → A) n → map f (upTo n) ≡ applyUpTo f n
268+
map-downFrom : ∀ (f : ℕ → A) n → map f (downFrom n) ≡ applyDownFrom f n
269+
```
270+
271+
* In `Data.List.Relation.Binary.Permutation.Propositional`:
272+
```agda
273+
↭⇒↭ₛ′ : IsEquivalence _≈_ → _↭_ ⇒ _↭ₛ′_
274+
```
275+
276+
* In `Data.List.Relation.Binary.Permutation.Propositional.Properties`:
277+
```agda
278+
filter-↭ : ∀ (P? : Pred.Decidable P) → xs ↭ ys → filter P? xs ↭ filter P? ys
279+
```
280+
281+
* In `Data.Product.Function.Dependent.Propositional`:
282+
```agda
283+
Σ-↪ : (I↪J : I ↪ J) → (∀ {j} → A (from I↪J j) ↪ B j) → Σ I A ↪ Σ J B
284+
```
285+
286+
* In `Data.Product.Function.Dependent.Setoid`:
287+
```agda
288+
rightInverse :
289+
(I↪J : I ↪ J) →
290+
(∀ {j} → RightInverse (A atₛ (from I↪J j)) (B atₛ j)) →
291+
RightInverse (I ×ₛ A) (J ×ₛ B)
292+
293+
leftInverse :
294+
(I↩J : I ↩ J) →
295+
(∀ {i} → LeftInverse (A atₛ i) (B atₛ (to I↩J i))) →
296+
LeftInverse (I ×ₛ A) (J ×ₛ B)
297+
```
298+
299+
* In `Data.Vec.Relation.Binary.Pointwise.Inductive`:
300+
```agda
301+
zipWith-assoc : Associative _∼_ f → Associative (Pointwise _∼_) (zipWith {n = n} f)
302+
zipWith-identityˡ: LeftIdentity _∼_ e f → LeftIdentity (Pointwise _∼_) (replicate n e) (zipWith f)
303+
zipWith-identityʳ: RightIdentity _∼_ e f → RightIdentity (Pointwise _∼_) (replicate n e) (zipWith f)
304+
zipWith-comm : Commutative _∼_ f → Commutative (Pointwise _∼_) (zipWith {n = n} f)
305+
zipWith-cong : Congruent₂ _∼_ f → Pointwise _∼_ ws xs → Pointwise _∼_ ys zs → Pointwise _∼_ (zipWith f ws ys) (zipWith f xs zs)
306+
```
307+
308+
* In `Relation.Binary.Construct.Add.Infimum.Strict`:
309+
```agda
310+
<₋-accessible-⊥₋ : Acc _<₋_ ⊥₋
311+
<₋-accessible[_] : Acc _<_ x → Acc _<₋_ [ x ]
312+
<₋-wellFounded : WellFounded _<_ → WellFounded _<₋_
313+
```
314+
315+
* In `Relation.Nullary.Decidable.Core`:
316+
```agda
317+
⊤-dec : Dec {a} ⊤
318+
⊥-dec : Dec {a} ⊥
319+
```
320+
321+
* In `Relation.Nullary.Negation.Core`:
322+
```agda
323+
contra-diagonal : (A → ¬ A) → ¬ A
324+
```
325+
326+
* In `Relation.Nullary.Reflects`:
327+
```agda
328+
⊤-reflects : Reflects (⊤ {a}) true
329+
⊥-reflects : Reflects (⊥ {a}) false
330+
130331
* In `Data.List.Relation.Unary.AllPairs.Properties`:
131332
```agda
132333
map⁻ : ∀ {xs} → AllPairs R (map f xs) → AllPairs (R on f) xs
@@ -139,5 +340,5 @@ Additions to existing modules
139340

140341
* In `Data.List.Relation.Unary.Unique.Propositional.Properties`:
141342
```agda
142-
map⁻ : ∀ {f} → Congruent _≡_ _≡_ f → ∀ {xs} → Unique (map f xs) → Unique xs
343+
map⁻ : ∀ {f} → Congruent _≡_ _≡_ f → ∀ {xs} → Unique (map f xs) → Unique xs
143344
```

agda-stdlib-utils.cabal

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ description: Helper programs for setting up the Agda standard library.
66
license: MIT
77

88
tested-with:
9-
GHC == 9.12.1
10-
GHC == 9.10.1
9+
GHC == 9.12.2
10+
GHC == 9.10.2
1111
GHC == 9.8.4
12-
GHC == 9.6.6
12+
GHC == 9.6.7
1313
GHC == 9.4.8
1414
GHC == 9.2.8
1515
GHC == 9.0.2

doc/README.agda

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ import README.IO
113113
-- • Tactic
114114
-- Tactics for automatic proof generation
115115

116-
-- Text
116+
-- Text
117117
-- Format-based printing, Pretty-printing, and regular expressions
118118

119119

0 commit comments

Comments
 (0)