{-# OPTIONS --cubical-compatible --safe #-}
module Relation.Nullary.Recomputable.Core where
open import Agda.Builtin.Equality using (_≡_; refl)
open import Level using (Level)
open import Relation.Nullary.Irrelevant using (Irrelevant)
private
variable
a : Level
A : Set a
Recomputable : (A : Set a) → Set a
Recomputable A = .A → A
module _ (recompute : Recomputable A) where
recompute-constant : (p q : A) → recompute p ≡ recompute q
recompute-constant _ _ = refl
recompute-irrelevant-id : Irrelevant A → (a : A) → recompute a ≡ a
recompute-irrelevant-id irr a = irr (recompute a) a