----------------------------------------------------------------------------------------------------

-- properties of order-preserving embeddings

module A202401.OPE-GAN {𝓍} {X : Set 𝓍} where

open import A202401.OPE public
open import A202401.GAN public


----------------------------------------------------------------------------------------------------

⟪⊑⟫ : Category 𝓍 𝓍
⟪⊑⟫ = record
        { Obj  = Rist X
        ; _▻_  = _⊑_
        ; id   = id⊑
        ; _∘_  = _∘⊑_
        ; lid▻ = lid⊑
        ; rid▻ = rid⊑
        ; ass▻ = ass⊑
        ; ◅ssa = λ ϱ ϱ′ ϱ″  ass⊑ ϱ″ ϱ′ ϱ ⁻¹
        }

⟪⊒⟫ : Category 𝓍 𝓍
⟪⊒⟫ = ⟪⊑⟫ ᵒᵖ

ƒlift⊑ : X  Functor ⟪⊑⟫ ⟪⊑⟫
ƒlift⊑ B = record
            { ƒObj = _, B
            ; ƒ    = lift⊑
            ; idƒ  = refl
            ; _∘ƒ_ = λ ϱ′ ϱ  refl
            }

νwk⊑ :  (B : X)  NatTrans (ƒId ⟪⊑⟫) (ƒlift⊑ B)
νwk⊑ B = record
           { ν    = λ Γ  wk⊑ id⊑
           ; natν = λ Γ Δ ϱ  wk⊑ & (lid⊑ ϱ  rid⊑ ϱ ⁻¹)
           }

module _ ( : FunExt) where
  ϖren∋ : X  Presheaf ⟪⊒⟫ 𝓍
  ϖren∋ A = record
              { ƒObj = _∋ A
              ; ƒ    = ren∋
              ; idƒ  =  idren∋
              ; _∘ƒ_ = λ ϱ′ ϱ   (compren∋ ϱ′ ϱ)
              }


----------------------------------------------------------------------------------------------------