open import 1Lab.HLevel open import 1Lab.Equiv open import 1Lab.Type module 1Lab.Path.IdentitySystem.Interface where open import 1Lab.Path.IdentitySystem hiding (to-path-refl) open import 1Lab.Path using (_≡_) module Ids {ℓ ℓ'} {A : Type ℓ} {R : A → A → Type ℓ'} {refl : ∀ a → R a a} (rr : is-identity-system R refl) where J : ∀ {ℓ a} (P : (b : A) → R a b → Type ℓ) → P a (refl a) → {b : A} (s : R a b) → P b s J = IdsJ rr J-refl : ∀ {ℓ a} (P : ∀ b → R a b → Type ℓ) → (x : P a (refl a)) → J P x (refl a) ≡ x J-refl = IdsJ-refl rr module _ {a b} where open Equiv (identity-system-gives-path rr {a} {b}) public to-refl : ∀ {a} → to-path rr (refl a) ≡ λ _ → a to-refl = 1Lab.Path.IdentitySystem.to-path-refl rr from-refl : ∀ {a} → from (λ _ → a) ≡ refl a from-refl = 1Lab.Path.transport-refl (refl _) hlevel : ∀ n → (∀ x y → is-hlevel (R x y) n) → is-hlevel A (suc n) hlevel n = identity-system→hlevel n rr