# FunctionGraph S¶

allows us to model graph theory

*: (%, %) -> FunctionGraph Product(S, S)

tensor product : the tensor product `G*H` of graphs `G` and `H` is a graph such that the vertex set of `G*H` is the Cartesian product `V`(`G`) times `V`(`H`); and any two vertices (`u`, u’) and (`v`, `v'`) are adjacent in `G` times `H` if and only if u’ is adjacent with `v'` and `u` is adjacent with `v`. Cartesian product does apply to function graph produces two arrows out of every node

+: (%, %) -> %

from FiniteGraph S

=: (%, %) -> Boolean

from BasicType

~=: (%, %) -> Boolean

from BasicType

addArrow!: (%, Record(name: String, arrType: NonNegativeInteger, fromOb: NonNegativeInteger, toOb: NonNegativeInteger, xOffset: Integer, yOffset: Integer, map: List NonNegativeInteger)) -> %

from FiniteGraph S

addArrow!: (%, String, NonNegativeInteger, NonNegativeInteger) -> %

from FiniteGraph S

addArrow!: (%, String, NonNegativeInteger, NonNegativeInteger, List NonNegativeInteger) -> %

from FiniteGraph S

addArrow!: (%, String, S, S) -> %

from FiniteGraph S

addObject!: (%, Record(value: S, posX: NonNegativeInteger, posY: NonNegativeInteger)) -> %

from FiniteGraph S

from FiniteGraph S

from FiniteGraph S

apply: (%, NonNegativeInteger) -> NonNegativeInteger

`apply '`function’ represented by this graph to vertex index ‘a’

arrowName: (%, NonNegativeInteger, NonNegativeInteger) -> String

from FiniteGraph S

arrowsFromArrow: (%, NonNegativeInteger) -> List NonNegativeInteger

from FiniteGraph S

arrowsFromNode: (%, NonNegativeInteger) -> List NonNegativeInteger

from FiniteGraph S

arrowsToArrow: (%, NonNegativeInteger) -> List NonNegativeInteger

from FiniteGraph S

arrowsToNode: (%, NonNegativeInteger) -> List NonNegativeInteger

from FiniteGraph S

closedTensor: (%, %, (S, S) -> S) -> %

as tensor product but returns %. Cartesian product does apply to function graph produces two arrows out of every node

coAdjoint: (%, List NonNegativeInteger) -> Union(List NonNegativeInteger, failed)

given a mapping from this graph this function tries to calculate a unique reverse mapping back to this graph

coerce: % -> OutputForm
contraAdjoint: (%, List NonNegativeInteger) -> Union(List NonNegativeInteger, failed)

given a mapping from this graph this function tries to calculate a unique reverse mapping back to this graph

createWidth: NonNegativeInteger -> NonNegativeInteger

from FiniteGraph S

createX: (NonNegativeInteger, NonNegativeInteger) -> NonNegativeInteger

from FiniteGraph S

createY: (NonNegativeInteger, NonNegativeInteger) -> NonNegativeInteger

from FiniteGraph S

cycleClosed: (List S, String) -> %

from FiniteGraph S

cycleOpen: (List S, String) -> %

from FiniteGraph S

deepDiagramSvg: (String, %, Boolean) -> Void

from FiniteGraph S

diagramHeight: % -> NonNegativeInteger

from FiniteGraph S

diagramsSvg: (String, List %, Boolean) -> Void

from FiniteGraph S

diagramSvg: (String, %, Boolean) -> Void

from FiniteGraph S

diagramWidth: % -> NonNegativeInteger

from FiniteGraph S

distance: (%, NonNegativeInteger, NonNegativeInteger) -> Integer

from FiniteGraph S

distanceMatrix: % -> Matrix Integer

from FiniteGraph S

flatten: DirectedGraph % -> %

from FiniteGraph S

functionGraph: (List Record(value: S, posX: NonNegativeInteger, posY: NonNegativeInteger), List Record(name: String, arrType: NonNegativeInteger, fromOb: NonNegativeInteger, toOb: NonNegativeInteger, xOffset: Integer, yOffset: Integer, map: List NonNegativeInteger)) -> %

constructor for graph with given objects and arrows more objects and arrows can be added later if required.

functionGraph: List Permutation S -> %

construct graph from a list of permutations.

functionGraph: List Record(value: S, posX: NonNegativeInteger, posY: NonNegativeInteger, next: NonNegativeInteger, map: List NonNegativeInteger) -> %

constructor for graph with given objects more objects and arrows can be added later if required.

functionGraph: List S -> %

constructor for graph with given list of object names. Use this version of the constructor if you don`'t` intend to create diagrams and therefore don`'t` care about `x`, `y` coordinates. more objects and arrows can be added later if required.

getArrowIndex: (%, NonNegativeInteger, NonNegativeInteger) -> NonNegativeInteger

from FiniteGraph S

getArrows: % -> List Record(name: String, arrType: NonNegativeInteger, fromOb: NonNegativeInteger, toOb: NonNegativeInteger, xOffset: Integer, yOffset: Integer, map: List NonNegativeInteger)

from FiniteGraph S

getVertexIndex: (%, S) -> NonNegativeInteger

from FiniteGraph S

getVertices: % -> List Record(value: S, posX: NonNegativeInteger, posY: NonNegativeInteger)

from FiniteGraph S

incidenceMatrix: % -> Matrix Integer

from FiniteGraph S

inDegree: (%, NonNegativeInteger) -> NonNegativeInteger

from FiniteGraph S

initial: () -> %

from FiniteGraph S

isAcyclic?: % -> Boolean

from FiniteGraph S

isDirected?: () -> Boolean

from FiniteGraph S

isDirectSuccessor?: (%, NonNegativeInteger, NonNegativeInteger) -> Boolean

from FiniteGraph S

isFixPoint?: (%, NonNegativeInteger) -> Boolean

from FiniteGraph S

isFunctional?: % -> Boolean

from FiniteGraph S

isGreaterThan?: (%, NonNegativeInteger, NonNegativeInteger) -> Boolean

from FiniteGraph S

kgraph: (List S, String) -> %

from FiniteGraph S

laplacianMatrix: % -> Matrix Integer

from FiniteGraph S

latex: % -> String

from SetCategory

limit: (%, NonNegativeInteger) -> Loop

apply ‘function’ represented by this graph to ‘a’ repeatedly until we reach a loop which is returned as a sequence of vertex indexes.

loopsArrows: % -> List Loop

from FiniteGraph S

loopsAtNode: (%, NonNegativeInteger) -> List Loop

from FiniteGraph S

loopsNodes: % -> List Loop

from FiniteGraph S

looseEquals: (%, %) -> Boolean

from FiniteGraph S

map: (%, List NonNegativeInteger, List S, Integer, Integer) -> %

from FiniteGraph S

mapContra: (%, List NonNegativeInteger, List S, Integer, Integer) -> %

from FiniteGraph S

max: % -> NonNegativeInteger

from FiniteGraph S

max: (%, List NonNegativeInteger) -> NonNegativeInteger

from FiniteGraph S

merge: (%, %) -> %

from FiniteGraph S

min: % -> NonNegativeInteger

from FiniteGraph S

min: (%, List NonNegativeInteger) -> NonNegativeInteger

from FiniteGraph S

nodeFromArrow: (%, NonNegativeInteger) -> List NonNegativeInteger

from FiniteGraph S

nodeFromNode: (%, NonNegativeInteger) -> List NonNegativeInteger

from FiniteGraph S

nodeToArrow: (%, NonNegativeInteger) -> List NonNegativeInteger

from FiniteGraph S

nodeToNode: (%, NonNegativeInteger) -> List NonNegativeInteger

from FiniteGraph S

outDegree: (%, NonNegativeInteger) -> NonNegativeInteger

from FiniteGraph S

routeArrows: (%, NonNegativeInteger, NonNegativeInteger) -> List NonNegativeInteger

from FiniteGraph S

routeNodes: (%, NonNegativeInteger, NonNegativeInteger) -> List NonNegativeInteger

from FiniteGraph S

spanningForestArrow: % -> List Tree Integer

from FiniteGraph S

spanningForestNode: % -> List Tree Integer

from FiniteGraph S

spanningTreeArrow: (%, NonNegativeInteger) -> Tree Integer

from FiniteGraph S

spanningTreeNode: (%, NonNegativeInteger) -> Tree Integer

from FiniteGraph S

subdiagramSvg: (Scene SCartesian 2, %, Boolean, Boolean) -> Void

from FiniteGraph S

terminal: S -> %

from FiniteGraph S

unit: (List S, String) -> %

from FiniteGraph S

BasicType

SetCategory