{-# OPTIONS --without-K --rewriting #-}
module Pi.Coxeter.NonParametrized.Coxeter where
open import lib.Base
open import lib.types.Nat using (_+_)
open import lib.types.Sigma
open import lib.PathGroupoid
open import lib.types.Fin
open import Pi.Common.Misc
open import Pi.Common.Arithmetic
open import Pi.Common.ListN
open import Pi.Coxeter.NonParametrized.ReductionRel
open import Pi.Coxeter.NonParametrized.MCoxeter
open import Pi.Coxeter.NonParametrized.MCoxeterS
open import Pi.Coxeter.NonParametrized.Diamond
data _~_ : Listℕ -> Listℕ -> Set where
cancel~ : {n : ℕ} -> (n ∷ n ∷ nil) ~ nil
swap~ : {n : ℕ} -> {k : ℕ} -> (S k < n) -> (n ∷ k ∷ nil) ~ (k ∷ n ∷ nil)
braid~ : {n : ℕ} -> ((S n) ∷ n ∷ (S n) ∷ nil) ~ (n ∷ (S n) ∷ n ∷ nil)
respects-l~ : (l : Listℕ) -> {r r' lr lr' : Listℕ} -> (r ~ r') -> (lr == l ++ r) -> (lr' == l ++ r') -> lr ~ lr'
respects-r~ : {l l' : Listℕ} -> (r : Listℕ) ->{lr l'r : Listℕ} -> (l ~ l') -> (lr == l ++ r) -> (l'r == l' ++ r) -> lr ~ l'r
idp~ : {m : Listℕ} -> m ~ m
comm~ : {m1 m2 : Listℕ} -> (m1 ~ m2) -> m2 ~ m1
trans~ : {m1 m2 m3 : Listℕ} -> (m1 ~ m2) -> (m2 ~ m3) -> m1 ~ m3