Idris2Doc : Frex.Coproduct

Frex.Coproduct

Definitions and constructions for coproducts in the category of models

Definitions

record(<~.~>) : {Pres : Presentation} ->ModelPres->ModelPres->Type
  A cospan between models of a presentation. Looks a bit like this: \o/

Totality: total
Visibility: public export
Constructor: 
MkCospan : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> (Sink : ModelPres) ->L~>Sink->R~>Sink->L<~.~>R

Projections:
.Lft : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> ({rec:0} : L<~.~>R) ->L~>Sink{rec:0}
  Left 'arm' of the cospan (\o/)
.Rgt : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> ({rec:0} : L<~.~>R) ->R~>Sink{rec:0}
  Right 'arm' of the cospan (\o/)
.Sink : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} ->L<~.~>R->ModelPres
  'Head' of the cospan (\o/)

Hints:
pres.signature=sig=>Semantic (a<~.~>b) (Opsig)
pres.signature=sig=>Semantic (a<~.~>b) (Termsigy)

Fixity Declaration: infixr operator, level 3
.Sink : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} ->L<~.~>R->ModelPres
  'Head' of the cospan (\o/)

Totality: total
Visibility: public export
Sink : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} ->L<~.~>R->ModelPres
  'Head' of the cospan (\o/)

Totality: total
Visibility: public export
.Lft : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> ({rec:0} : L<~.~>R) ->L~>Sink{rec:0}
  Left 'arm' of the cospan (\o/)

Totality: total
Visibility: public export
Lft : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> ({rec:0} : L<~.~>R) ->L~>Sink{rec:0}
  Left 'arm' of the cospan (\o/)

Totality: total
Visibility: public export
.Rgt : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> ({rec:0} : L<~.~>R) ->R~>Sink{rec:0}
  Right 'arm' of the cospan (\o/)

Totality: total
Visibility: public export
Rgt : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> ({rec:0} : L<~.~>R) ->R~>Sink{rec:0}
  Right 'arm' of the cospan (\o/)

Totality: total
Visibility: public export
0PreservesLft : {Pres : Presentation} -> {L : ModelPres} -> {R : ModelPres} -> (C : L<~.~>R) -> (D : L<~.~>R) ->C.Sink~>D.Sink->Type
  `Pres`-homomorphism preserving the Lft-arm of a cospan

Totality: total
Visibility: public export
0PreservesRgt : {Pres : Presentation} -> {L : ModelPres} -> {R : ModelPres} -> (C : L<~.~>R) -> (D : L<~.~>R) ->C.Sink~>D.Sink->Type
  `Pres`-homomorphism preserving the Rgt-arm of a cospan

Totality: total
Visibility: public export
recordPreserves : {Pres : Presentation} -> {L : ModelPres} -> {R : ModelPres} -> (C : L<~.~>R) -> (D : L<~.~>R) ->C.Sink~>D.Sink->Type
  A morphism preserving both arms of a cospan

Totality: total
Visibility: public export
Constructor: 
IsPreserving : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0C : L<~.~>R} -> {0D : L<~.~>R} -> {0H : C.Sink~>D.Sink} ->PreservesLftH->PreservesRgtH->PreservesCDH

Projections:
.Lft : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0C : L<~.~>R} -> {0D : L<~.~>R} -> {0H : C.Sink~>D.Sink} ->PreservesCDH->PreservesLftH
.Rgt : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0C : L<~.~>R} -> {0D : L<~.~>R} -> {0H : C.Sink~>D.Sink} ->PreservesCDH->PreservesRgtH
.Lft : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0C : L<~.~>R} -> {0D : L<~.~>R} -> {0H : C.Sink~>D.Sink} ->PreservesCDH->PreservesLftH
Totality: total
Visibility: public export
Lft : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0C : L<~.~>R} -> {0D : L<~.~>R} -> {0H : C.Sink~>D.Sink} ->PreservesCDH->PreservesLftH
Totality: total
Visibility: public export
.Rgt : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0C : L<~.~>R} -> {0D : L<~.~>R} -> {0H : C.Sink~>D.Sink} ->PreservesCDH->PreservesRgtH
Totality: total
Visibility: public export
Rgt : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0C : L<~.~>R} -> {0D : L<~.~>R} -> {0H : C.Sink~>D.Sink} ->PreservesCDH->PreservesRgtH
Totality: total
Visibility: public export
record(~>) : {Pres : Presentation} -> {L : ModelPres} -> {R : ModelPres} ->L<~.~>R->L<~.~>R->Type
  A morphism between cospans

Totality: total
Visibility: public export
Constructor: 
MkCospanMorphism : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0C : L<~.~>R} -> {0D : L<~.~>R} -> (H : C.Sink~>D.Sink) ->PreservesCDH->C~>D

Projections:
.H : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0C : L<~.~>R} -> {0D : L<~.~>R} ->C~>D->C.Sink~>D.Sink
  A morphism between the sinks
.preserve : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0C : L<~.~>R} -> {0D : L<~.~>R} -> ({rec:0} : C~>D) ->PreservesCD (H{rec:0})
  Preserving both arms

Fixity Declarations:
infix operator, level 5
infix operator, level 5
infix operator, level 5
.H : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0C : L<~.~>R} -> {0D : L<~.~>R} ->C~>D->C.Sink~>D.Sink
  A morphism between the sinks

Totality: total
Visibility: public export
H : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0C : L<~.~>R} -> {0D : L<~.~>R} ->C~>D->C.Sink~>D.Sink
  A morphism between the sinks

Totality: total
Visibility: public export
.preserve : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0C : L<~.~>R} -> {0D : L<~.~>R} -> ({rec:0} : C~>D) ->PreservesCD (H{rec:0})
  Preserving both arms

Totality: total
Visibility: public export
preserve : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0C : L<~.~>R} -> {0D : L<~.~>R} -> ({rec:0} : C~>D) ->PreservesCD (H{rec:0})
  Preserving both arms

Totality: total
Visibility: public export
Extender : {Pres : Presentation} -> {L : ModelPres} -> {R : ModelPres} ->L<~.~>R->Type
  Weak initiality: for any other cospan there is a cospan morphism from Coprod into it

Totality: total
Visibility: public export
0ExtenderFunction : {Pres : Presentation} -> {L : ModelPres} -> {R : ModelPres} ->L<~.~>R->Type
  Data for function underlying an Extender

Totality: total
Visibility: public export
0ExtenderSetoidHomomorphism : {Pres : Presentation} -> {L : ModelPres} -> {R : ModelPres} ->L<~.~>R->Type
  Data for SetoidHomomorphism underlying an Extender

Totality: total
Visibility: public export
0ExtenderHomomorphism : {Pres : Presentation} -> {L : ModelPres} -> {R : ModelPres} ->L<~.~>R->Type
  Data for AlgebraHomomorphism underlying an Extender

Totality: total
Visibility: public export
0Uniqueness : {Pres : Presentation} -> {L : ModelPres} -> {R : ModelPres} ->L<~.~>R->Type
  There's at most one cospan morphism out of `Coprod` into any other cospan

Totality: total
Visibility: public export
recordUniversality : {Pres : Presentation} -> {L : ModelPres} -> {R : ModelPres} ->L<~.~>R->Type
  A cospan is (co)universal when it is initial

Totality: total
Visibility: public export
Constructor: 
IsUniversal : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0Coprod : L<~.~>R} ->Extender->Uniqueness->UniversalityCoprod

Projections:
.Exists : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0Coprod : L<~.~>R} ->UniversalityCoprod->Extender
.Unique : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0Coprod : L<~.~>R} ->UniversalityCoprod->Uniqueness
.Exists : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0Coprod : L<~.~>R} ->UniversalityCoprod->Extender
Totality: total
Visibility: public export
Exists : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0Coprod : L<~.~>R} ->UniversalityCoprod->Extender
Totality: total
Visibility: public export
.Unique : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0Coprod : L<~.~>R} ->UniversalityCoprod->Uniqueness
Totality: total
Visibility: public export
Unique : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> {0Coprod : L<~.~>R} ->UniversalityCoprod->Uniqueness
Totality: total
Visibility: public export
recordCoproduct : {Pres : Presentation} ->ModelPres->ModelPres->Type
  A coproduct of two models is a universal cospan between them

Totality: total
Visibility: public export
Constructor: 
MkCoproduct : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> (Data : L<~.~>R) ->UniversalityData->CoproductLR

Projections:
.Data : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} ->CoproductLR->L<~.~>R
.UP : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> ({rec:0} : CoproductLR) ->Universality (Data{rec:0})

Hints:
pres.signature=sig=>Semantic (Coproductab) (Opsig)
pres.signature=sig=>Semantic (Coproductab) (Termsigy)
.Data : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} ->CoproductLR->L<~.~>R
Totality: total
Visibility: public export
Data : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} ->CoproductLR->L<~.~>R
Totality: total
Visibility: public export
.UP : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> ({rec:0} : CoproductLR) ->Universality (Data{rec:0})
Totality: total
Visibility: public export
UP : {0Pres : Presentation} -> {0L : ModelPres} -> {0R : ModelPres} -> ({rec:0} : CoproductLR) ->Universality (Data{rec:0})
Totality: total
Visibility: public export