The definition of what a power is
record Parameterisation : (Pres : Presentation) -> Setoid -> Model Pres -> TypeA parameterisation
MkParameterisation : {0 Pres : Presentation} -> {0 X : Setoid} -> {0 A : Model Pres} -> (Model : Model Pres) -> X ~> (Model ~~> A) -> Parameterisation Pres X A.Eval : {0 Pres : Presentation} -> {0 X : Setoid} -> {0 A : Model Pres} -> ({rec:0} : Parameterisation Pres X A) -> X ~> (Model {rec:0} ~~> A).Model : {0 Pres : Presentation} -> {0 X : Setoid} -> {0 A : Model Pres} -> Parameterisation Pres X A -> Model Pres.Model : {0 Pres : Presentation} -> {0 X : Setoid} -> {0 A : Model Pres} -> Parameterisation Pres X A -> Model PresModel : {0 Pres : Presentation} -> {0 X : Setoid} -> {0 A : Model Pres} -> Parameterisation Pres X A -> Model Pres.Eval : {0 Pres : Presentation} -> {0 X : Setoid} -> {0 A : Model Pres} -> ({rec:0} : Parameterisation Pres X A) -> X ~> (Model {rec:0} ~~> A)Eval : {0 Pres : Presentation} -> {0 X : Setoid} -> {0 A : Model Pres} -> ({rec:0} : Parameterisation Pres X A) -> X ~> (Model {rec:0} ~~> A)0 PreservesEvaluation : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> (v : Parameterisation Pres X A) -> (w : Parameterisation Pres X A) -> v .Model ~> w .Model -> TypeModel/algebra homomorphism that is also a parametrisation morphism
record (~>) : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> Parameterisation Pres X A -> Parameterisation Pres X A -> TypeMkParameterisationMorphism : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> {0 V : Parameterisation Pres X A} -> {0 W : Parameterisation Pres X A} -> (H : V .Model ~> W .Model) -> (0 _ : PreservesEvaluation V W H) -> V ~> W.H : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> {0 V : Parameterisation Pres X A} -> {0 W : Parameterisation Pres X A} -> V ~> W -> V .Model ~> W .Model0 .preserve : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> {0 V : Parameterisation Pres X A} -> {0 W : Parameterisation Pres X A} -> ({rec:0} : V ~> W) -> PreservesEvaluation V W (H {rec:0}).H : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> {0 V : Parameterisation Pres X A} -> {0 W : Parameterisation Pres X A} -> V ~> W -> V .Model ~> W .ModelH : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> {0 V : Parameterisation Pres X A} -> {0 W : Parameterisation Pres X A} -> V ~> W -> V .Model ~> W .Model0 .preserve : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> {0 V : Parameterisation Pres X A} -> {0 W : Parameterisation Pres X A} -> ({rec:0} : V ~> W) -> PreservesEvaluation V W (H {rec:0})0 preserve : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> {0 V : Parameterisation Pres X A} -> {0 W : Parameterisation Pres X A} -> ({rec:0} : V ~> W) -> PreservesEvaluation V W (H {rec:0})0 Extension : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> Parameterisation Pres X A -> Type0 UniqueExtension : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> (XtoA : Parameterisation Pres X A) -> (other : Parameterisation Pres X A) -> other ~> XtoA -> Type0 Uniqueness : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> (XtoA : Parameterisation Pres X A) -> Extension -> Typerecord Universality : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> Parameterisation Pres X A -> TypeIsUniversal : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> {0 XtoA : Parameterisation Pres X A} -> (Exists : Extension) -> (0 _ : Uniqueness Exists) -> Universality XtoA.Exists : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> {0 XtoA : Parameterisation Pres X A} -> Universality XtoA -> Extension0 .Unique : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> {0 XtoA : Parameterisation Pres X A} -> ({rec:0} : Universality XtoA) -> Uniqueness (Exists {rec:0}).Exists : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> {0 XtoA : Parameterisation Pres X A} -> Universality XtoA -> ExtensionExists : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> {0 XtoA : Parameterisation Pres X A} -> Universality XtoA -> Extension0 .Unique : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> {0 XtoA : Parameterisation Pres X A} -> ({rec:0} : Universality XtoA) -> Uniqueness (Exists {rec:0})0 Unique : {Pres : Presentation} -> {X : Setoid} -> {A : Model Pres} -> {0 XtoA : Parameterisation Pres X A} -> ({rec:0} : Universality XtoA) -> Uniqueness (Exists {rec:0})record Power : {Pres : Presentation} -> Setoid -> Model Pres -> TypeMkPower : {0 Pres : Presentation} -> {0 X : Setoid} -> {0 A : Model Pres} -> (Data : Parameterisation Pres X A) -> Universality Data -> Power X A.Data : {0 Pres : Presentation} -> {0 X : Setoid} -> {0 A : Model Pres} -> Power X A -> Parameterisation Pres X A.UP : {0 Pres : Presentation} -> {0 X : Setoid} -> {0 A : Model Pres} -> ({rec:0} : Power X A) -> Universality (Data {rec:0}).Data : {0 Pres : Presentation} -> {0 X : Setoid} -> {0 A : Model Pres} -> Power X A -> Parameterisation Pres X AData : {0 Pres : Presentation} -> {0 X : Setoid} -> {0 A : Model Pres} -> Power X A -> Parameterisation Pres X A.UP : {0 Pres : Presentation} -> {0 X : Setoid} -> {0 A : Model Pres} -> ({rec:0} : Power X A) -> Universality (Data {rec:0})UP : {0 Pres : Presentation} -> {0 X : Setoid} -> {0 A : Model Pres} -> ({rec:0} : Power X A) -> Universality (Data {rec:0})