module algebra.semigroup.core where

open import level
open import equality.core
open import sum
open import hott.level

record IsSemigroup {i} (X : Set i) : Set i where
  field
    _*_ : X  X  X
    assoc : (x y z : X)  (x * y) * z  x * (y * z)

    is-set : h 2 X

Semigroup :  i  Set (lsuc i)
Semigroup i = Σ (Set i) IsSemigroup