Skip to main content

holos_tda/
lib.rs

1#![forbid(unsafe_code)]
2#![warn(missing_docs)]
3
4//! Vietoris-Rips persistent homology and finite H1 degree-Rips modules over a
5//! prime field.
6//!
7//! The scalar engine uses implicit persistent cohomology. Its tie-breaking and
8//! output conventions match Ripser. The degree-Rips path constructs every node
9//! and cover map on a declared finite grid.
10
11pub(crate) mod adjacency;
12/// Certified local models of H1 persistence under changing inputs.
13pub mod atlas;
14/// Wire format for persistence atlases.
15pub mod atlas_wire;
16/// Finite multicritical bifiltrations and exact degree-Rips construction.
17pub mod bifiltration;
18/// Exact finite H1 modules over degree-Rips parameter grids.
19pub mod bipersistence;
20/// Wire format for checked finite degree-Rips bipersistence modules.
21pub mod bipersistence_artifact;
22#[cfg(test)]
23mod bit_keys;
24pub(crate) mod budget;
25/// Algebraic reduction certificates.
26pub mod certificate;
27/// Checked circular coordinates and conservative continuation.
28pub mod circular;
29/// Wire format for checked circular coordinates and continuation.
30pub mod circular_artifact;
31/// Stable H1 classes and cocycle validation.
32pub mod classes;
33/// The `holos` CLI as a library function (shared with the Python bindings).
34pub mod cli;
35/// Canonical cohomology and exact relations in any bounded dimension.
36pub mod cohomology;
37/// Weighted fixed-scale interventions across declared graph scenarios.
38pub mod cohomology_intervention;
39pub mod collapse;
40pub(crate) mod combinadic;
41/// Exact class-space correspondences across persistence updates.
42pub mod correspondence;
43/// Relative topological coverage criteria for fenced planar sensor networks.
44pub mod coverage;
45/// Exact component frontiers for failure-tolerant coverage synthesis.
46pub mod coverage_frontier;
47/// Exact planar geometry bindings for finite coverage specifications.
48pub mod coverage_geometry;
49/// Failure-tolerant finite and kinetic relative coverage specifications.
50pub mod coverage_synthesis;
51/// Distance-matrix construction and storage.
52pub mod distances;
53/// Durable content-addressed execution for relative interfaces.
54pub mod distributed;
55/// Proof-carrying persistence for explicit scalar filtered complexes.
56pub mod explicit_certificate;
57/// Vertex-biconnected factorization of sparse flag filtrations.
58pub mod factorization;
59pub(crate) mod field;
60/// Explicit filtered simplicial complexes and filtration grades.
61pub mod filtration;
62/// Dimension-generic algebraic certificates for separator indexes.
63pub mod graded_certificate;
64/// Versioned exact persistence over checked separator interfaces.
65pub mod index;
66/// Cold snapshots and warm deltas for persistence indexes.
67pub mod index_proof;
68/// Stateful exact index streams with proof output.
69pub mod index_stream;
70/// Certified finite H1 lifetime interventions.
71pub mod intervention;
72/// File formats and diagram output.
73pub mod io;
74/// Exact events for affine edge-weight trajectories.
75pub mod kinetic;
76/// Certificates for kinetic cohomology zigzags.
77pub mod kinetic_zigzag_artifact;
78mod monotone_proof;
79mod monotone_search;
80/// Brute-force reference implementation used by the test gates.
81pub mod oracle;
82pub(crate) mod parallel;
83/// Source-bound persistent H1 class and cycle artifacts.
84pub mod persistent_class_artifact;
85/// Harmonic coordinates bound to persistent H1 class artifacts.
86pub mod persistent_coordinate_artifact;
87/// Compositional H0 and H1 persistence programs.
88pub mod program;
89/// Update traces for persistence programs.
90pub mod program_trace;
91/// Wire format for persistence programs.
92pub mod program_wire;
93/// Unified proof DAGs for checked persistence trajectories.
94pub mod proof;
95pub(crate) mod reduce;
96/// Exact filtered chain cores relative to separator subcomplexes.
97pub mod relative_interface;
98pub(crate) mod simplex;
99pub(crate) mod solver;
100/// Proof-carrying synthesis for finite temporal topology specifications.
101pub mod synthesis;
102/// Trajectories across atlas regions.
103pub mod trajectory;
104mod union_find;
105/// Exact interval decomposition of finite zigzag modules.
106pub mod zigzag;
107
108pub use atlas::{
109    AtlasEvaluation, AtlasUpdate, ClassSensitivity, CoordinateDerivative, EdgeKey,
110    EndpointGradient, EvaluatedClassSpace, LineageId, PersistenceAtlas, PointAtlasUpdate,
111    PointClassSensitivity, PointEndpointGradient, PointPersistenceAtlas, TopologyEvent,
112    TopologyEventKind, UpdateMode,
113};
114pub use atlas_wire::{AtlasArtifact, AtlasArtifactError, AtlasArtifactRepair, AtlasDecodeLimits};
115pub use bifiltration::{
116    BifiltrationLimits, BifiltrationSlice, Bigrade, BirthAntichain, DegreeRipsBifiltration,
117    DegreeRipsParams, MulticriticalBifiltration, MulticriticalSimplex,
118};
119pub use bipersistence::{
120    BipersistenceLimits, BipersistenceMap, BipersistenceMapColumn, BipersistenceModule,
121    BipersistenceNode, BipersistenceRectangle, BipersistenceRegion, BipersistenceTerm,
122    CircularCoordinateFamily, CircularCoordinateFamilyEntry, CircularCoordinateFamilyStatus,
123    ClassExtension, ClassExtensionKind, ClassExtensionRegion, CohomologyClassAtlas,
124};
125pub use bipersistence_artifact::{
126    BipersistenceArtifact, BipersistenceArtifactLimits, BipersistenceArtifactSummary,
127    BipersistenceRectangleClaim, BipersistenceRegionClaim,
128};
129pub use certificate::{
130    CertificateError, CertificateLimits, CertificateTerm, CertifiedReductionRegion,
131    CertifiedRegionEvaluation, ChangeColumn, FiltrationSimplex, ReductionCertificate,
132    ReductionGuard, ReductionGuardKind, ReductionRepair, ReductionRepairMode, ReductionRepairWork,
133    RegionViolation, RegionViolationKind,
134};
135pub use circular::{
136    CircularClassTerm, CircularCoordinate, CircularCoordinateContinuation,
137    CircularCoordinateParams, IntegralCocycleTerm, circular_coordinate,
138    circular_coordinate_for_class, circular_coordinate_with_integral_lift,
139    cocycle_from_ripser_terms, continue_circular_coordinate,
140};
141pub use circular_artifact::{
142    CircularArtifactError, CircularArtifactSummary, CircularCoordinateArtifact,
143};
144pub use classes::{
145    BasisClassId, Cocycle, CocycleTerm, CriticalPair, CriticalSimplex, ExplainedDiagram,
146    IntervalGroupId, PersistentClass, PersistentClassProvenance, PersistentClassSpace,
147    lift_h1_classes, rips_persistence_with_classes_sparse,
148};
149pub use cohomology::{
150    CochainTerm, CohomologyClass, CohomologyClassId, CohomologyContinuation,
151    CohomologyContinuationKind, CohomologyLimits, CohomologyMapColumn, CohomologyMapTerm,
152    CohomologyRelation, CohomologyRelationTerm, CohomologyRelationVector, CohomologyRestriction,
153    CohomologySpace, CohomologySpaceId, CohomologySubspace, CohomologySubspaceGenerator,
154    CohomologySubspaceTerm, cohomology_continuation, cohomology_relation, cohomology_restriction,
155    cohomology_space,
156};
157pub use cohomology_intervention::{
158    CohomologyInterventionArtifact, CohomologyInterventionCandidate, CohomologyInterventionLimits,
159    CohomologyInterventionScenario, CohomologyInterventionStatus,
160};
161pub use correspondence::{
162    ClassCorrespondence, CorrespondenceTerm, CorrespondenceVector, class_correspondences,
163};
164pub use coverage::{
165    CoverageEvaluation, CoverageFence, CoverageLimits, CoverageTriangleTerm, PlanarCoverageModel,
166    evaluate_planar_coverage,
167};
168pub use coverage_frontier::{
169    CoverageComponentFrontier, CoverageComposition, CoverageCompositionStatus,
170    CoverageFrontierEntry, compose_coverage_frontiers,
171};
172pub use coverage_geometry::{
173    CoverageGeometry, CoverageGeometryLimits, GeometryBoundCoverageArtifact,
174    GeometryBoundCoverageDecodeLimits, PlanarPoint,
175};
176pub use coverage_synthesis::{
177    CoverageAction, CoverageComponent, CoverageCounterexample, CoveragePlanEvaluation,
178    CoverageSource, CoverageSpecification, CoverageState, CoverageSynthesisArtifact,
179    CoverageSynthesisLimits, CoverageSynthesisStatus, evaluate_coverage_plan,
180};
181pub use distances::{
182    DistanceMatrix, PointCloudGraph, PointCloudParams, PointCloudStats, PointCloudStrategy,
183    SparseDistanceMatrix,
184};
185pub use distributed::{
186    ArtifactId, DistributedInterfaceCommit, DistributedInterfaceError,
187    DistributedInterfaceManifest, DistributedInterfaceWork, DurableInterfaceStore,
188};
189pub use explicit_certificate::ExplicitReductionCertificate;
190pub use filtration::{
191    ComplexLimits, CoordinateProjection, FilteredSimplex, FilteredSimplicialComplex,
192    FiltrationError, FiltrationGrade, FlagComplexParams, LinearFiltrationGrade, ProductGrade,
193    ScalarGrade, ScalarProjection,
194};
195pub use graded_certificate::{
196    GradedDimensionWork, GradedReductionCertificate, GradedReductionRepair,
197    GradedReductionRepairWork,
198};
199pub use index::{
200    DiagramDelta, IndexBranch, IndexDiff, IndexEdit, IndexEvent, IndexEventKind, IndexParams,
201    IndexSummary, IndexTransition, IndexUpdateMode, IndexWork, InterfaceMode, InterfacePolicy,
202    InterfaceSummary, PersistenceIndex, TopologyPatch,
203};
204pub use index_proof::{IndexDeltaProof, IndexProofError, IndexProofSummary, IndexSnapshotProof};
205pub use index_stream::{IndexStream, IndexStreamProof, IndexStreamStep};
206pub use intervention::{
207    EdgeWeightEdit, H1Intervention, InterventionArtifact, InterventionBudget,
208    InterventionDecodeLimits, InterventionError, InterventionStatus, VerifiedIntervention,
209};
210pub use kinetic::{
211    KineticCohomologyEvent, KineticEdge, KineticEdgeKey, KineticEvent, KineticEventKind,
212    KineticFiltration, KineticGraphState, KineticGraphStateKind, KineticLimits, KineticSchedule,
213    KineticZigzag, KineticZigzagArrow, KineticZigzagNode, KineticZigzagNodeKind,
214};
215pub use kinetic_zigzag_artifact::{
216    KineticZigzagArtifact, KineticZigzagArtifactLimits, KineticZigzagArtifactSummary,
217    KineticZigzagIntervalClaim,
218};
219pub use persistent_class_artifact::{
220    PersistenceCycleTerm, PersistenceTriangleTerm, PersistentClassArtifact,
221};
222pub use persistent_coordinate_artifact::{
223    PersistentCoordinateArtifact, PersistentCoordinateArtifactError,
224    PersistentCoordinateArtifactSummary,
225};
226pub use program::{
227    BasisTransport, ClassContinuation, ContinuationKind, CorrespondenceMode, PersistenceProgram,
228    ProgramAtomInfo, ProgramBranch, ProgramCheckpoint, ProgramDiagramState, ProgramDiagramUpdate,
229    ProgramDiagramUpdateMode, ProgramEvaluation, ProgramEvent, ProgramEventKind, ProgramSummary,
230    ProgramUpdate, ProgramUpdateMode, ProgramWork,
231};
232pub use program_trace::{
233    ProgramTraceArtifact, ProgramTraceDecodeLimits, ProgramTraceError, ProgramTraceStep,
234    VerifiedProgramTrace, VerifiedProgramTraceStep,
235};
236pub use program_wire::{
237    ProgramArtifact, ProgramArtifactError, ProgramAtomArtifact, ProgramDecodeLimits,
238};
239pub use proof::{ProofArtifact, ProofArtifactError, ProofArtifactSummary};
240pub use relative_interface::{
241    InterfaceCancellation, InterfaceCell, InterfaceChainTerm, RelativeInterfaceCertificate,
242    RelativeInterfaceWork,
243};
244pub use synthesis::{
245    SynthesisAction, SynthesisArtifact, SynthesisComponent, SynthesisCoordinate, SynthesisLimits,
246    SynthesisSource, SynthesisState, SynthesisStatus, TopologicalSpecification,
247};
248pub use trajectory::{
249    TrajectoryArtifact, TrajectoryDecodeLimits, TrajectoryError, TrajectoryStep,
250    VerifiedTrajectory, VerifiedTrajectoryStep,
251};
252pub use zigzag::{
253    ZigzagBarcode, ZigzagDirection, ZigzagInterval, ZigzagIntervalId, ZigzagLimits, ZigzagMap,
254    ZigzagModule, ZigzagModuleId, ZigzagTerm,
255};
256
257/// Short git commit hash recorded at build time ("unknown" outside a repo).
258pub const GIT_HASH: &str = env!("HOLOS_GIT_HASH");
259/// Crate version.
260pub const VERSION: &str = env!("CARGO_PKG_VERSION");
261/// Cargo build profile recorded at build time.
262pub const BUILD_PROFILE: &str = env!("HOLOS_BUILD_PROFILE");
263
264mod scalar;
265
266pub(crate) use scalar::collapse_and_solve;
267pub use scalar::{
268    Bar, CollapseSchedule, DenseStorage, Diagram, Engine, Error, GraphFactorization, Result,
269    RipsParams, rips_persistence, rips_persistence_sparse, rips_persistence_with_classes,
270};