Sheaf Morphisms
The Sheaf Morphisms module defines the core morphism types and constructors used throughout the package. Below are the primary symbols, automatically generated from the module's exported interface.
CellularSheaves.NetworkSheaves.SheafMorphisms — Module
Module for morphisms of cellular sheaf complexes.
A sheaf morphism F -> G consists of, for each vertex v, a linear map F(v) -> G(φ(v)) and, for each edge e, a linear map F(e) -> G(ψ(e)), subject to the naturality condition dG ∘ V = E ∘ dF where dF, dG are the coboundary maps of F and G respectively.
This module provides two representations:
SheafMorphism— a structured specification: per-stalk matrices together with index maps that say which stalk of the target each source stalk maps into. This is the natural form when building morphisms by hand.ComplexMorphism— the matrix representation: a pair(V, E)of block matricesV : C⁰(F) → C⁰(G)andE : C¹(F) → C¹(G). This is the form needed for linear-algebraic operations.
The functor ComplexMorphism(F, G, spec::SheafMorphism) assembles the block matrices from the structured spec.
CellularSheaves.NetworkSheaves.SheafMorphisms.ComplexMorphism — Type
ComplexMorphismA morphism of cochain complexes C*(F) -> C*(G) represented as a pair of matrices:
V :: AbstractMatrix— the degree-0 componentC⁰(F) → C⁰(G).E :: AbstractMatrix— the degree-1 componentC¹(F) → C¹(G).
The naturality condition is E * dF == dG * V where dF, dG are the coboundary maps. Use is_morphism to check this numerically.
CellularSheaves.NetworkSheaves.SheafMorphisms.ComplexMorphism — Method
ComplexMorphism(F, G, Vmap, Emap, Vmaps, Emaps)Assemble a ComplexMorphism F -> G from explicit index maps and per-stalk matrices.
Arguments
F,G: source and targetAbstractNetworkSheaf.Vmap :: AbstractVector{<:Integer}— vertex index map (length =nv(F)).Emap :: AbstractVector{<:Integer}— edge index map (length =ne(F)).Vmaps :: AbstractVector— per-source-vertex matrices.Emaps :: AbstractVector— per-source-edge matrices.
Returns a ComplexMorphism(V, E) where V and E are BlockArrays with the block partitions induced by the stalk dimensions of F and G.
CellularSheaves.NetworkSheaves.SheafMorphisms.ComplexMorphism — Method
ComplexMorphism(F, G, spec::SheafMorphism)Convert a SheafMorphism spec into a ComplexMorphism.
This is the functor from the category of structured sheaf-morphism specifications to the category of cochain-complex morphisms on the same objects.
CellularSheaves.NetworkSheaves.SheafMorphisms.SheafMorphism — Type
SheafMorphismA structured specification of a cellular-sheaf morphism F -> G.
Fields
Vmap :: Vector{Int}—Vmap[i] = jmeans thei-th vertex stalk ofFmaps into thej-th vertex stalk ofG.Emap :: Vector{Int}—Emap[k] = ℓmeans thek-th edge stalk ofFmaps into theℓ-th edge stalk ofG.Vmaps :: Vector— one matrix per source vertex stalk; the matrix at indexihas size(dim G_vertex[Vmap[i]], dim F_vertex[i]).Emaps :: Vector— one matrix per source edge stalk; the matrix at indexkhas size(dim G_edge[Emap[k]], dim F_edge[k]).
Use ComplexMorphism(F, G, spec) to convert to block-matrix form.
CellularSheaves.NetworkSheaves.GraphHomomorphisms.compose — Method
compose(f::ComplexMorphism, g::ComplexMorphism) -> ComplexMorphismCompose two compatible ComplexMorphisms f : C*(F) -> C*(G) and g : C*(G) -> C*(H) by matrix multiplication.
CellularSheaves.NetworkSheaves.GraphHomomorphisms.compose — Method
compose(f::SheafMorphism, g::SheafMorphism) -> SheafMorphismCompose two compatible SheafMorphisms f : F -> G and g : G -> H to produce g ∘ f : F -> H.
CellularSheaves.NetworkSheaves.SheafMorphisms.id — Method
id(::Type{ComplexMorphism}, X) -> ComplexMorphismReturn the identity ComplexMorphism on sheaf X.
V is the identity matrix on C⁰(X) (total vertex-stalk dimension) and E is the identity matrix on C¹(X) (total edge-stalk dimension).
CellularSheaves.NetworkSheaves.SheafMorphisms.id — Method
id(::Type{SheafMorphism}, X) -> SheafMorphismReturn the identity SheafMorphism on sheaf X.
Each vertex stalk maps to itself via Vmap[i] = i with a square identity matrix, and likewise for every edge stalk.
CellularSheaves.NetworkSheaves.SheafMorphisms.is_morphism — Method
is_morphism(cm, F, G; tol=1e-8) -> BoolConvenience overload: computes coboundary_map(F) and coboundary_map(G) and delegates to the matrix form.
CellularSheaves.NetworkSheaves.SheafMorphisms.is_morphism — Method
is_morphism(cm::ComplexMorphism, dF, dG; tol=1e-8) -> BoolReturn true if the naturality square E * dF ≈ dG * V holds within tol.
CellularSheaves.NetworkSheaves.SheafMorphisms.make_sheaf_morphism_spec — Method
make_sheaf_morphism_spec(Vmap, Emap, Vmaps, Emaps) -> SheafMorphismConvenience constructor: normalises argument types and returns a SheafMorphism.