Idris2Doc : Frex.Free.Definition

Frex.Free.Definition

Definition of a free model over a setoid

Definitions

recordModelOver : Presentation->Setoid->Type
  A model over a setoid `X` is a model that can also interpret the
elements of `X`.

For example, the monads associated to a presentation are the
choices of a free model over each set(oid).

Totality: total
Visibility: public export
Constructor: 
MkModelOver : {0Pres : Presentation} -> {0X : Setoid} -> (Model : ModelPres) ->X~>castModel->ModelOverPresX

Projections:
.Env : {0Pres : Presentation} -> {0X : Setoid} -> ({rec:0} : ModelOverPresX) ->X~>cast (Model{rec:0})
.Model : {0Pres : Presentation} -> {0X : Setoid} ->ModelOverPresX->ModelPres

Hints:
pres.signature=sig=>Semantic (ModelOverpresx) (Opsig)
pres.signature=sig=>Semantic (ModelOverpresx) (Termsigy)
.Model : {0Pres : Presentation} -> {0X : Setoid} ->ModelOverPresX->ModelPres
Totality: total
Visibility: public export
Model : {0Pres : Presentation} -> {0X : Setoid} ->ModelOverPresX->ModelPres
Totality: total
Visibility: public export
.Env : {0Pres : Presentation} -> {0X : Setoid} -> ({rec:0} : ModelOverPresX) ->X~>cast (Model{rec:0})
Totality: total
Visibility: public export
Env : {0Pres : Presentation} -> {0X : Setoid} -> ({rec:0} : ModelOverPresX) ->X~>cast (Model{rec:0})
Totality: total
Visibility: public export
0PreservesEnv : {Pres : Presentation} -> {X : Setoid} -> (a : ModelOverPresX) -> (b : ModelOverPresX) ->cast (a.Model) ~>cast (b.Model) ->Type
  States: Homomorphism between the models over X.

Totality: total
Visibility: public export
record(~>) : {Pres : Presentation} -> {X : Setoid} ->ModelOverPresX->ModelOverPresX->Type
  A `Pres`-model over X homomorphism

Totality: total
Visibility: public export
Constructor: 
MkHomomorphism : {0Pres : Presentation} -> {0X : Setoid} -> {0A : ModelOverPresX} -> {0B : ModelOverPresX} -> (H : A.Model~>B.Model) ->PreservesEnvAB (H.H) ->A~>B

Projections:
.H : {0Pres : Presentation} -> {0X : Setoid} -> {0A : ModelOverPresX} -> {0B : ModelOverPresX} ->A~>B->A.Model~>B.Model
.preserves : {0Pres : Presentation} -> {0X : Setoid} -> {0A : ModelOverPresX} -> {0B : ModelOverPresX} -> ({rec:0} : A~>B) ->PreservesEnvAB ((H{rec:0}) .H)

Fixity Declarations:
infix operator, level 5
infix operator, level 5
infix operator, level 5
.H : {0Pres : Presentation} -> {0X : Setoid} -> {0A : ModelOverPresX} -> {0B : ModelOverPresX} ->A~>B->A.Model~>B.Model
Totality: total
Visibility: public export
H : {0Pres : Presentation} -> {0X : Setoid} -> {0A : ModelOverPresX} -> {0B : ModelOverPresX} ->A~>B->A.Model~>B.Model
Totality: total
Visibility: public export
.preserves : {0Pres : Presentation} -> {0X : Setoid} -> {0A : ModelOverPresX} -> {0B : ModelOverPresX} -> ({rec:0} : A~>B) ->PreservesEnvAB ((H{rec:0}) .H)
Totality: total
Visibility: public export
preserves : {0Pres : Presentation} -> {0X : Setoid} -> {0A : ModelOverPresX} -> {0B : ModelOverPresX} -> ({rec:0} : A~>B) ->PreservesEnvAB ((H{rec:0}) .H)
Totality: total
Visibility: public export
0Extender : {Pres : Presentation} -> {X : Setoid} ->ModelOverPresX->Type
  Weak initiality: for any other model over X there is a morphism from FX into it.

Totality: total
Visibility: public export
0ExtenderFunction : {Pres : Presentation} -> {X : Setoid} ->ModelOverPresX->Type
Totality: total
Visibility: public export
0ExtenderSetoidHomomorphism : {Pres : Presentation} -> {X : Setoid} ->ModelOverPresX->Type
Totality: total
Visibility: public export
0ExtenderAlgebraHomomorphism : {Pres : Presentation} -> {X : Setoid} ->ModelOverPresX->Type
Totality: total
Visibility: public export
0Uniqueness : {Pres : Presentation} -> {X : Setoid} ->ModelOverPresX->Type
  There's at most one homomorphism of models over X from FX

Totality: total
Visibility: public export
recordFreeness : {Pres : Presentation} -> {X : Setoid} ->ModelOverPresX->Type
Totality: total
Visibility: public export
Constructor: 
IsFree : {0Pres : Presentation} -> {0X : Setoid} -> {0FX : ModelOverPresX} ->Extender->Uniqueness->FreenessFX

Projections:
.Exists : {0Pres : Presentation} -> {0X : Setoid} -> {0FX : ModelOverPresX} ->FreenessFX->Extender
.Unique : {0Pres : Presentation} -> {0X : Setoid} -> {0FX : ModelOverPresX} ->FreenessFX->Uniqueness
.Exists : {0Pres : Presentation} -> {0X : Setoid} -> {0FX : ModelOverPresX} ->FreenessFX->Extender
Totality: total
Visibility: public export
Exists : {0Pres : Presentation} -> {0X : Setoid} -> {0FX : ModelOverPresX} ->FreenessFX->Extender
Totality: total
Visibility: public export
.Unique : {0Pres : Presentation} -> {0X : Setoid} -> {0FX : ModelOverPresX} ->FreenessFX->Uniqueness
Totality: total
Visibility: public export
Unique : {0Pres : Presentation} -> {0X : Setoid} -> {0FX : ModelOverPresX} ->FreenessFX->Uniqueness
Totality: total
Visibility: public export
recordFree : Presentation->Setoid->Type
Totality: total
Visibility: public export
Constructor: 
MkFree : {0Pres : Presentation} -> {0X : Setoid} -> (Data : ModelOverPresX) ->FreenessData->FreePresX

Projections:
.Data : {0Pres : Presentation} -> {0X : Setoid} ->FreePresX->ModelOverPresX
.UP : {0Pres : Presentation} -> {0X : Setoid} -> ({rec:0} : FreePresX) ->Freeness (Data{rec:0})

Hints:
pres.signature=sig=>Semantic (Freepresx) (Opsig)
pres.signature=sig=>Semantic (Freepresx) (Termsigy)
.Data : {0Pres : Presentation} -> {0X : Setoid} ->FreePresX->ModelOverPresX
Totality: total
Visibility: public export
Data : {0Pres : Presentation} -> {0X : Setoid} ->FreePresX->ModelOverPresX
Totality: total
Visibility: public export
.UP : {0Pres : Presentation} -> {0X : Setoid} -> ({rec:0} : FreePresX) ->Freeness (Data{rec:0})
Totality: total
Visibility: public export
UP : {0Pres : Presentation} -> {0X : Setoid} -> ({rec:0} : FreePresX) ->Freeness (Data{rec:0})
Totality: total
Visibility: public export