Skip to content

Commit 2aa864f

Browse files
committed
[ agda#1332 ] Expose instances for decidable equality
1 parent f0f39f9 commit 2aa864f

21 files changed

+374
-0
lines changed

src/Data/Bin/Instances.agda

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
------------------------------------------------------------------------
2+
-- The Agda standard library
3+
--
4+
-- Instances for bits
5+
------------------------------------------------------------------------
6+
7+
{-# OPTIONS --without-K --safe #-}
8+
9+
module Data.Bin.Instances where
10+
11+
open import Data.Bin.Properties
12+
13+
instance
14+
≡-isDecEquivalence-Bin = ≡-isDecEquivalence

src/Data/Bool/Instances.agda

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
------------------------------------------------------------------------
2+
-- The Agda standard library
3+
--
4+
-- Instances for booleans
5+
------------------------------------------------------------------------
6+
7+
{-# OPTIONS --without-K --safe #-}
8+
9+
module Data.Bool.Instances where
10+
11+
open import Data.Bool.Properties
12+
open import Relation.Binary.PropositionalEquality.Properties
13+
using (isDecEquivalence)
14+
15+
instance
16+
≡-isDecEquivalence-Bool = isDecEquivalence _≟_

src/Data/Char/Instances.agda

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
------------------------------------------------------------------------
2+
-- The Agda standard library
3+
--
4+
-- Instances for characters
5+
------------------------------------------------------------------------
6+
7+
{-# OPTIONS --without-K --safe #-}
8+
9+
module Data.Char.Instances where
10+
11+
open import Data.Char.Properties
12+
open import Relation.Binary.PropositionalEquality.Properties
13+
using (isDecEquivalence)
14+
15+
instance
16+
≡-isDecEquivalence-Char = isDecEquivalence _≟_

src/Data/Fin/Instances.agda

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
------------------------------------------------------------------------
2+
-- The Agda standard library
3+
--
4+
-- Instances for finite sets
5+
------------------------------------------------------------------------
6+
7+
{-# OPTIONS --without-K --safe #-}
8+
9+
module Data.Fin.Instances where
10+
11+
open import Data.Fin.Base
12+
open import Data.Fin.Properties
13+
14+
instance
15+
≡-isDecEquivalence-Fin = ≡-isDecEquivalence

src/Data/Float/Instances.agda

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
------------------------------------------------------------------------
2+
-- The Agda standard library
3+
--
4+
-- Instances for floating point numbers
5+
------------------------------------------------------------------------
6+
7+
{-# OPTIONS --without-K --safe #-}
8+
9+
module Data.Float.Instances where
10+
11+
open import Data.Float.Properties
12+
open import Relation.Binary.PropositionalEquality.Properties
13+
using (isDecEquivalence)
14+
15+
instance
16+
≡-isDecEquivalence-Float = isDecEquivalence _≟_

src/Data/Integer/Instances.agda

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
------------------------------------------------------------------------
2+
-- The Agda standard library
3+
--
4+
-- Instances for integers
5+
------------------------------------------------------------------------
6+
7+
{-# OPTIONS --without-K --safe #-}
8+
9+
module Data.Integer.Instances where
10+
11+
open import Data.Integer.Properties
12+
open import Relation.Binary.PropositionalEquality.Properties
13+
using (isDecEquivalence)
14+
15+
instance
16+
≡-isDecEquivalence-Integer = isDecEquivalence _≟_

src/Data/List/Instances.agda

+7
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@
99
module Data.List.Instances where
1010

1111
open import Data.List.Categorical
12+
open import Data.List.Properties
13+
using (≡-dec)
14+
open import Relation.Binary.PropositionalEquality.Properties
15+
using (isDecEquivalence)
16+
open import Relation.Binary.TypeClasses
1217

1318
instance
1419
listFunctor = functor
@@ -19,3 +24,5 @@ instance
1924
listMonadZero = monadZero
2025
listMonadPlus = monadPlus
2126
listMonadT = λ {ℓ} {M} {{inst}} monadT {ℓ} {M} inst
27+
28+
≡-isDecEquivalence-List = λ {a} {A} {{≡-isDecEquivalence-A}} isDecEquivalence (≡-dec {a} {A} (_≟_ {{≡-isDecEquivalence-A}}))

src/Data/Nat/Binary/Instances.agda

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
------------------------------------------------------------------------
2+
-- The Agda standard library
3+
--
4+
-- Instances for binary natural numbers
5+
------------------------------------------------------------------------
6+
7+
{-# OPTIONS --without-K --safe #-}
8+
9+
module Data.Nat.Binary.Instances where
10+
11+
open import Data.Nat.Binary.Properties
12+
open import Relation.Binary.PropositionalEquality.Properties
13+
using (isDecEquivalence)
14+
15+
instance
16+
≡-isDecEquivalence-ℕᵇ = isDecEquivalence _≟_

src/Data/Nat/Instances.agda

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
------------------------------------------------------------------------
2+
-- The Agda standard library
3+
--
4+
-- Instances for natural numbers
5+
------------------------------------------------------------------------
6+
7+
{-# OPTIONS --without-K --safe #-}
8+
9+
module Data.Nat.Instances where
10+
11+
open import Data.Nat.Properties
12+
open import Relation.Binary.PropositionalEquality.Properties
13+
using (isDecEquivalence)
14+
15+
instance
16+
≡-isDecEquivalence-ℕ = isDecEquivalence _≟_

src/Data/Product/Instances.agda

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
------------------------------------------------------------------------
2+
-- The Agda standard library
3+
--
4+
-- Typeclass instances for products
5+
------------------------------------------------------------------------
6+
7+
{-# OPTIONS --without-K --safe #-}
8+
9+
module Data.Product.Instances where
10+
11+
open import Data.Product.Properties
12+
open import Relation.Binary.PropositionalEquality.Properties
13+
using (isDecEquivalence)
14+
open import Relation.Binary.PropositionalEquality.Core
15+
using (_≡_)
16+
open import Relation.Binary.Structures
17+
using (IsDecEquivalence)
18+
open import Relation.Binary.TypeClasses
19+
20+
instance
21+
≡-isDecEquivalence-Σ = λ {a} {b} {A} {B} {{≡-isDecEquivalence-A}} {{≡-isDecEquivalence-B : {a} IsDecEquivalence (_≡_ {A = B a})}} isDecEquivalence (≡-dec {a} {A = A} {b} {B = B} (_≟_ {{≡-isDecEquivalence-A}}) (_≟_ {{≡-isDecEquivalence-B}}))

src/Data/Rational/Instances.agda

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
------------------------------------------------------------------------
2+
-- The Agda standard library
3+
--
4+
-- Instances for rational numbers
5+
------------------------------------------------------------------------
6+
7+
{-# OPTIONS --without-K --safe #-}
8+
9+
module Data.Rational.Instances where
10+
11+
open import Data.Rational.Properties
12+
open import Relation.Binary.PropositionalEquality.Properties
13+
using (isDecEquivalence)
14+
15+
instance
16+
≡-isDecEquivalence-ℚ = isDecEquivalence _≟_

src/Data/Sign/Instances.agda

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
------------------------------------------------------------------------
2+
-- The Agda standard library
3+
--
4+
-- Instances for signs
5+
------------------------------------------------------------------------
6+
7+
{-# OPTIONS --without-K --safe #-}
8+
9+
module Data.Sign.Instances where
10+
11+
open import Data.Sign.Properties
12+
open import Relation.Binary.PropositionalEquality.Properties
13+
using (isDecEquivalence)
14+
15+
instance
16+
≡-isDecEquivalence-Sign = isDecEquivalence _≟_

src/Data/String/Instances.agda

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
------------------------------------------------------------------------
2+
-- The Agda standard library
3+
--
4+
-- Instances for strings
5+
------------------------------------------------------------------------
6+
7+
{-# OPTIONS --without-K --safe #-}
8+
9+
module Data.String.Instances where
10+
11+
open import Data.String.Properties
12+
open import Relation.Binary.PropositionalEquality.Properties
13+
using (isDecEquivalence)
14+
15+
instance
16+
≡-isDecEquivalence-String = isDecEquivalence _≟_

src/Data/Sum/Instances.agda

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
------------------------------------------------------------------------
2+
-- The Agda standard library
3+
--
4+
-- Typeclass instances for sums
5+
------------------------------------------------------------------------
6+
7+
{-# OPTIONS --without-K --safe #-}
8+
9+
module Data.Sum.Instances where
10+
11+
open import Data.Sum.Properties
12+
open import Relation.Binary.PropositionalEquality.Properties
13+
using (isDecEquivalence)
14+
open import Relation.Binary.TypeClasses
15+
16+
instance
17+
≡-isDecEquivalence-⊎ = λ {a} {b} {A} {B} {{≡-isDecEquivalence-A}} {{≡-isDecEquivalence-B}} isDecEquivalence (≡-dec {a} {A = A} {b} {B = B} (_≟_ {{≡-isDecEquivalence-A}}) (_≟_ {{≡-isDecEquivalence-B}}))

src/Data/These/Instances.agda

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
------------------------------------------------------------------------
2+
-- The Agda standard library
3+
--
4+
-- Typeclass instances for These
5+
------------------------------------------------------------------------
6+
7+
{-# OPTIONS --without-K --safe #-}
8+
9+
module Data.These.Instances where
10+
11+
open import Data.These.Properties
12+
open import Relation.Binary.PropositionalEquality.Properties
13+
using (isDecEquivalence)
14+
open import Relation.Binary.TypeClasses
15+
16+
instance
17+
≡-isDecEquivalence-These = λ {a} {b} {A} {B} {{≡-isDecEquivalence-A}} {{≡-isDecEquivalence-B}} isDecEquivalence (≡-dec {a} {b} {A = A} {B = B} (_≟_ {{≡-isDecEquivalence-A}}) (_≟_ {{≡-isDecEquivalence-B}}))

src/Data/Unit/Instances.agda

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
------------------------------------------------------------------------
2+
-- The Agda standard library
3+
--
4+
-- Instances for the unit type
5+
------------------------------------------------------------------------
6+
7+
{-# OPTIONS --without-K --safe #-}
8+
9+
module Data.Unit.Instances where
10+
11+
open import Data.Unit.Properties
12+
open import Relation.Binary.PropositionalEquality.Properties
13+
using (isDecEquivalence)
14+
15+
instance
16+
≡-isDecEquivalence-Unit = isDecEquivalence _≟_

src/Data/Vec/Instances.agda

+9
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,16 @@
99
module Data.Vec.Instances where
1010

1111
open import Data.Vec.Categorical
12+
open import Data.Vec.Properties
13+
using (≡-dec)
14+
open import Relation.Binary.PropositionalEquality.Properties
15+
using (isDecEquivalence)
16+
open import Data.Vec.Relation.Binary.Equality.DecPropositional
17+
open import Relation.Binary.TypeClasses
18+
1219

1320
instance
1421
vecFunctor = functor
1522
vecApplicative = applicative
23+
24+
≡-isDecEquivalence-Vec = λ {a} {A} {{≡-isDecEquivalence-A}} {n} isDecEquivalence (≡-dec {a} {A} (_≟_ {{≡-isDecEquivalence-A}}) {n})

src/Data/Word/Instances.agda

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
------------------------------------------------------------------------
2+
-- The Agda standard library
3+
--
4+
-- Instances for words
5+
------------------------------------------------------------------------
6+
7+
{-# OPTIONS --without-K --safe #-}
8+
9+
module Data.Word.Instances where
10+
11+
open import Data.Word.Properties
12+
open import Relation.Binary.PropositionalEquality.Properties
13+
using (isDecEquivalence)
14+
15+
instance
16+
≡-isDecEquivalence-Word = isDecEquivalence _≟_

src/Reflection/Instances.agda

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
------------------------------------------------------------------------
2+
-- The Agda standard library
3+
--
4+
-- Instances for reflected syntax
5+
------------------------------------------------------------------------
6+
7+
{-# OPTIONS --without-K --safe #-}
8+
9+
module Reflection.Instances where
10+
11+
import Reflection.Literal as Literal
12+
import Reflection.Name as Name
13+
import Reflection.Meta as Meta
14+
import Reflection.Abstraction as Abstraction
15+
import Reflection.Argument as Argument
16+
import Reflection.Argument.Visibility as Visibility
17+
import Reflection.Argument.Relevance as Relevance
18+
import Reflection.Argument.Information as Information
19+
import Reflection.Pattern as Pattern
20+
import Reflection.Term as Term
21+
22+
open import Relation.Binary.PropositionalEquality.Properties
23+
using (isDecEquivalence)
24+
open import Relation.Binary.TypeClasses
25+
26+
instance
27+
≡-isDecEquivalence-Lit = isDecEquivalence Literal._≟_
28+
≡-isDecEquivalence-Name = isDecEquivalence Name._≟_
29+
≡-isDecEquivalence-Meta = isDecEquivalence Meta._≟_
30+
≡-isDecEquivalence-Visibility = isDecEquivalence Visibility._≟_
31+
≡-isDecEquivalence-Relevance = isDecEquivalence Relevance._≟_
32+
≡-isDecEquivalence-Arg-info = isDecEquivalence Information._≟_
33+
≡-isDecEquivalence-Pattern = isDecEquivalence Pattern._≟_
34+
≡-isDecEquivalence-Abs = λ {ℓ} {A} {{≡-isDecEquivalence-A}} isDecEquivalence (Abstraction.≡-dec {ℓ} {A} (_≟_ {{≡-isDecEquivalence-A}}))
35+
≡-isDecEquivalence-Arg = λ {ℓ} {A} {{≡-isDecEquivalence-A}} isDecEquivalence (Argument.≡-dec {ℓ} {A} (_≟_ {{≡-isDecEquivalence-A}}))
36+
≡-isDecEquivalence-Clause = isDecEquivalence Term._≟-Clause_
37+
≡-isDecEquivalence-Term = isDecEquivalence Term._≟_
38+
≡-isDecEquivalence-Sort = isDecEquivalence Term._≟-Sort_

src/Relation/Binary/TypeClasses.agda

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
------------------------------------------------------------------------
2+
-- The Agda standard library
3+
--
4+
-- Typeclasses for use with instance arguments
5+
------------------------------------------------------------------------
6+
7+
{-# OPTIONS --without-K --safe #-}
8+
9+
module Relation.Binary.TypeClasses where
10+
11+
open import Relation.Binary.Structures using (IsDecEquivalence)
12+
13+
open IsDecEquivalence {{...}} public

0 commit comments

Comments
 (0)