Idris2Doc : Data.Container.Base.Properties.Definitions

Data.Container.Base.Properties.Definitions

(source)

Definitions

dataInterfaceOnPositions : (0_ : Cont) -> (Type->Type) ->Type
  Convenience datatype for storing the data that a container `c` has an
interface `i` on its positions

Totality: total
Visibility: public export
Constructor: 
MkI : ((s : c.Shp) ->i (c.Poss)) ->InterfaceOnPositionsci
  For every shape `s` the set of positions `c.Pos s` has that interface
GetInterface : InterfaceOnPositionsci-> (s : c.Shp) ->i (c.Poss)
Totality: total
Visibility: public export
IsFinite : Cont->Type
  A container is finite when for every shape the set of positions is finite.
Examples: vectors, lists, but also finite binary trees.
Note, provision of a finite instance for trees requires a choice of a tree
traversal. (All of these choices isomorphic, but are necessary to make)

Totality: total
Visibility: public export
dataIsNonDep : Cont->Type
  A container is non-dependent when positions do not depend on shapes

Totality: total
Visibility: public export
Constructor: 
MkIsNonDep : (s : Type) -> (p : Type) ->IsNonDep (s!> (\{_:17162}=>p))
dataIsConst : Cont->Type
  Used in learning, where we want to know that the tangent space over a
particular parameter is equal to the parameter space itself

Totality: total
Visibility: public export
Constructor: 
ItIsConst : (p : Type) ->IsConst (p!> (\{_:17177}=>p))
dataIsFlat : Cont->Type
  Following the flat-sharp terminology

Totality: total
Visibility: public export
Constructor: 
ItIsFlat : (s : Type) ->IsFlat (s!> (\{_:17191}=> ()))
dataIsSharp : Cont->Type
Totality: total
Visibility: public export
Constructor: 
ItIsSharp : (s : Type) ->IsSharp (s!> (\{_:17205}=>Void))
NaperianCont : Type->Cont
  Will be removed later, temp fix for now as otherwise the coverage 
checker complains

Totality: total
Visibility: public export
dataIsNaperian : Cont->Type
  A container is Naperian when the set of shapes is `Unit`, i.e. when it
contains only one set of positions.
Examples: Scalar, UnitCont, Pair, Vect n, Stream.
Notably, Naperian does not imply Finite, as the `Stream` example shows.

Totality: total
Visibility: public export
Constructor: 
MkIsNaperian : (pos : Type) ->IsNaperian (NaperianContpos)

Hints:
IsNaperianc=>Applicative (Extc)
IsNaperianc=>SeqMonoidc
IsNaperianc=>TensorMonoidc
LogHelper : IsNaperianc=>Type
Totality: total
Visibility: public export
Log : (0c : Cont) ->IsNaperianc=>Type
Totality: total
Visibility: public export
naperianPosEq : IsNaperianc=>c.Posx=c.Posy
Totality: total
Visibility: public export
CubicalCont : Nat->Cont
  Will be removed later, temp fix for now as otherwise the coverage 
checker complains

Totality: total
Visibility: public export
dataIsCubical : Cont->Type
  A container is cubical whenever it is Finite and Naperian
Effectively, captures `Vect n` containers, up to isomorphism
Examples: for any `n : Nat`, `Vect n`. Those are all the examples, up to
isomorphism. Notably, this also includes a container whose unique set of
positions is the set of positions of a binary tree of a particular shape.
This is isomorphic to the `Vect k` container, for some `k`, assuming a
choice of tree traversal (though all of them yield the same `k`). Here
`k` corresponds to the number of positions in that binary tree

Totality: total
Visibility: public export
Constructor: 
MkIsCubical : (n : Nat) ->IsCubical (CubicalContn)
dimHelper : IsCubicalc->Nat
Totality: total
Visibility: public export
dim : (0c : Cont) ->IsCubicalc=>Nat
  We call dimension the size of the set of positions of a finite container 

Totality: total
Visibility: public export
isCubicalContEq : ({arg:17308} : IsCubicald) ->d= () !> (\{_:17315}=>Fin (dimd))
  Every cubical container is `Nap (Fin n)` with `n = dim ic` (used for rewrites).

Totality: total
Visibility: public export
interfaceIsFoldable : Cont->Type
  A container is foldable if `c ≃ List`
That is, there ought to exist a dependent lens `c =%> List` and back
Here we only encode one part of this

Parameters: c
Constructor: 
MkIsFoldable

Methods:
mapToList : c=%> (Nat!> (\n=>Finn))

Implementations:
IsFoldableList
IsFoldable (Vectn)
IsFoldableBinTreeLeaf
IsFoldableBinTreeNode
IsFoldableBinTree
mapToList : IsFoldablec=>c=%> (Nat!> (\n=>Finn))
Totality: total
Visibility: public export
interfaceIsConcrete : Cont->Type
  Many datatypes in the Idris standard library are already
concrete representations of particular containers

Parameters: c
Constructor: 
MkIsConcrete

Methods:
func : Type->Type
functorInstance : Functorfunc
fromConcreteTy : funca->Extca
toConcreteTy : Extca->funca

Implementations:
IsConcreteScalar
IsConcreteMaybe
IsConcretePair
IsConcretec=>IsConcreted=>IsConcrete (c><d)
IsConcretec=>IsConcreted=>IsConcrete (c>@d)
IsConcreteList
IsConcrete (Vectn)
IsConcrete (Grid (h, w))
IsConcreteBinTree
IsConcreteBinTreeNode
IsConcreteBinTreeLeaf
func : IsConcretec=>Type->Type
Totality: total
Visibility: public export
functorInstance : {auto__con : IsConcretec} ->Functorfunc
Totality: total
Visibility: public export
fromConcreteTy : {auto__con : IsConcretec} ->funca->Extca
Totality: total
Visibility: public export
toConcreteTy : {auto__con : IsConcretec} ->Extca->funca
Totality: total
Visibility: public export
(>#) : {auto{conArg:17476} : IsConcretec} ->funca->Extca
Totality: total
Visibility: public export
Fixity Declaration: prefix operator, level 0
(#>) : {auto{conArg:17498} : IsConcretec} ->Extca->funca
Totality: total
Visibility: public export
Fixity Declaration: prefix operator, level 0