aboutsummaryrefslogtreecommitdiff
path: root/Data/Hypergraph/Base.agda
blob: e43cbceb433634961234fd42b4c46f8182fb34c9 (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
{-# OPTIONS --without-K --safe #-}

open import Data.Hypergraph.Label using (HypergraphLabel)

module Data.Hypergraph.Base (HL : HypergraphLabel) where

open import Data.Hypergraph.Edge HL using (Edge; decTotalOrder; showEdge)
open import Data.List.Base using (List; map)
open import Data.Nat.Base using ()
open import Data.String using (String; unlines)

import Data.List.Sort.MergeSort as MergeSort

record Hypergraph (v : ) : Set where
  field
    edges : List (Edge v)

sortHypergraph : {v : }  Hypergraph v  Hypergraph v
sortHypergraph {v} H = record { edges = sort edges }
  where
    open Hypergraph H
    open MergeSort decTotalOrder using (sort)

showHypergraph : {v : }  Hypergraph v  String
showHypergraph record { edges = e} = unlines (map showEdge e)