aboutsummaryrefslogtreecommitdiff
path: root/Data/Hypergraph/Label.agda
blob: ca95002dd80ea29f7f8e71be2bbf75cc337512ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{-# OPTIONS --without-K --safe #-}
module Data.Hypergraph.Label where

open import Data.Castable using (IsCastable)
open import Data.Nat.Base using ()
open import Data.String using (String)
open import Level using (Level; 0)
open import Relation.Binary using (Rel; IsDecTotalOrder)
open import Relation.Binary.Bundles using (DecTotalOrder; StrictTotalOrder)
open import Relation.Binary.Properties.DecTotalOrder using (<-strictTotalOrder; _<_)
open import Relation.Binary.PropositionalEquality using (_≡_)

record HypergraphLabel : Set₁ where

  field
    Label :   Set
    showLabel : (n : )  Label n  String
    isCastable : IsCastable Label
    _[_≤_] : (n : )  Rel (Label n) 0    isDecTotalOrder : (n : )  IsDecTotalOrder _≡_ (n [_≤_])

  decTotalOrder : (n : )  DecTotalOrder 0 0 0  decTotalOrder n = record
      { Carrier = Label n
      ; _≈_ = _≡_
      ; _≤_ = n [_≤_]
      ; isDecTotalOrder = isDecTotalOrder n
      }

  _[_<_] : (n : )  Rel (Label n) 0  _[_<_] n =  _<_ (decTotalOrder n)

  strictTotalOrder : (n : )  StrictTotalOrder 0 0 0  strictTotalOrder n = <-strictTotalOrder (decTotalOrder n)

  open IsCastable isCastable public