module Calf.Computation.Copower where
open import Calf.Value
open import Calf.Value.Sigma public
open import Calf.Computation
open import Cubical.Foundations.Prelude using (cong)
open import Cubical.Foundations.HLevels
open import Cubical.Foundations.Structure
Ξ£αΆ : (X : π±β) β (β¨ X β© β π) β π
Ξ£αΆ isSetX A .U = Ξ£[ x β _ ] U (A x)
Ξ£αΆ isSetX A .is-set = isSetΞ£ (str isSetX) Ξ» x β A x .is-set
Ξ£αΆ isSetX A .charge c (x , a) = x , A x .charge c a
Ξ£αΆ isSetX A .charge/0 {x , a} = cong (x ,_) (A x .charge/0)
Ξ£αΆ isSetX A .charge/+ {x , a} = cong (x ,_) (A x .charge/+)
syntax Ξ£αΆ X (Ξ» x β A) = [ x β X ] β A
_β_ : π±β β π β π
X β A = [ _ β X ] β A