Construct the free monoid over a setoid `s` by freely extending the free monoid over the empty setoid by the setoid `s`
record Parameters : Presentation -> Setoid -> Type
MkParameters : {0 Pres : Presentation} -> (Initial : Free Pres (cast Void)) -> Frex ((Initial .Data) .Model) s -> Parameters Pres s
.FrexBy : {0 Pres : Presentation} -> ({rec:0} : Parameters Pres s) -> Frex (((Initial {rec:0}) .Data) .Model) s
.Initial : {0 Pres : Presentation} -> Parameters Pres s -> Free Pres (cast Void)
.Initial : {0 Pres : Presentation} -> Parameters Pres s -> Free Pres (cast Void)
Initial : {0 Pres : Presentation} -> Parameters Pres s -> Free Pres (cast Void)
.FrexBy : {0 Pres : Presentation} -> ({rec:0} : Parameters Pres s) -> Frex (((Initial {rec:0}) .Data) .Model) s
FrexBy : {0 Pres : Presentation} -> ({rec:0} : Parameters Pres s) -> Frex (((Initial {rec:0}) .Data) .Model) s
.toModelOver : {auto param : Parameters pres s} -> Extension (((param .Initial) .Data) .Model) s -> ModelOver pres s
.OverVoid : Model pres -> ModelOver pres (cast Void)
.initiality : {auto param : Parameters pres s} -> (model : Model pres) -> ((param .Initial) .Data) .Model ~> model
.homomorphism : a .Model ~> b -> a ~> b .OverVoid
.toExtension : {auto param : Parameters pres s} -> ModelOver pres s -> Extension (((param .Initial) .Data) .Model) s
.toExtensionMorphism : {auto param : Parameters pres s} -> mod1 .toModelOver ~> mod2 -> mod1 ~> mod2 .toExtension
FreeModelOver : Parameters pres s -> ModelOver pres s
Extender : (param : Parameters pres s) -> Extender
Uniqueness : (param : Parameters pres s) -> Uniqueness
ByFrex : (initial : Free pres (cast Void)) -> Frex ((initial .Data) .Model) s -> Free pres s