{-# OPTIONS --safe --cubical #-}

module Utils where

open import Cubical.Core.Everything
open import Cubical.Foundations.Prelude hiding (_≡⟨_⟩_)

variable
  a b c : Level
  A : Set a
  B : Set b
  C : Set c

infixr 2 _⊔_
_⊔_ = ℓ-max

infixr 2 ≡˘⟨⟩-syntax _≡⟨⟩_ ≡⟨∙⟩-syntax

≡˘⟨⟩-syntax : ∀ (x : A) {y z} → y ≡ z → y ≡ x → x ≡ z
≡˘⟨⟩-syntax _ y≡z y≡x = sym y≡x ∙ y≡z

syntax ≡˘⟨⟩-syntax x y≡z y≡x = x ≡˘⟨ y≡x ⟩ y≡z

≡⟨∙⟩-syntax : ∀ (x : A) {y z} → y ≡ z → x ≡ y → x ≡ z
≡⟨∙⟩-syntax _ y≡z x≡y = x≡y ∙ y≡z

syntax ≡⟨∙⟩-syntax x y≡z x≡y = x ≡⟨ x≡y ⟩ y≡z

_≡⟨⟩_ : ∀ (x : A) {y} → x ≡ y → x ≡ y
_ ≡⟨⟩ x≡y = x≡y

infix 1 begin[_]_
begin[_]_ : {x y : A} → I → x ≡ y → A
begin[ i ] x≡y = x≡y i