Skip to content

Releases: Industrial-Algebra/Karpal

Karpal v0.5.0

24 May 04:30
ff30d86

Choose a tag to compare

0.5.0 Release

New crates

  • karpal-diagram — monoidal categories, string-diagram DSL, coherence witnesses, verification integration (Phase 13, complete)
  • karpal-schubert-types — Schubert intersection type system (Phase 14 A–C)

Phase 12 — karpal-verify extensions

  • Kani verification backend with harness generation
  • GPU compute obligation builders for Metal/MSL kernel contracts
  • karpal-verify-derive companion proc-macro crate (#[export_obligations])
  • karpal-proof bridge (ProofBridge, ProofEvidence) for proof-derived certificates
  • Continuous verification CI workflow

Phase 13 — karpal-diagram (complete)

  • Monoidal category traits: Tensor, Braiding, Symmetry, Trace
  • String-diagram DSL with Identity, Box, Sequence, Parallel, Swap, Cup, Cap nodes
  • Runtime diagram normalization with NormalizationTrace and 6 rewrite rules
  • Compact-closed cup/cap yanking normalization
  • Text and SVG renderers
  • Type-level coherence witnesses: PentagonIdentity, TriangleIdentity, HexagonIdentity
  • Diagrammatic rewriting bridge: ByNormalization, ByYanking, equivalent_proved(), prove_yanking()
  • Verification integration: CoherenceCertificate, coherence_certificates()

Phase 14 — karpal-schubert-types (A–C, 0.5.0 scope)

  • SchubertType — Schubert classes in Grassmannians via amari-enumerative
  • Intersection / IntersectionKind — LR coefficient intersection with structured zero classification
  • SchubertTyped trait + SchubertProven<M, T> proof-carrying values
  • compose_checks() — chained type-check composition via LR rule
  • External verification: schubert_bundle() + verify_schubert() with 3 obligation types

Licensing

All 0.5.0+ crates use AGPL-3.0-or-later. The 0.4.x support line remains available under MIT OR Apache-2.0.

v0.4.0

24 Mar 21:24
cb75f8e

Choose a tag to compare

What's Changed

Full Changelog: v0.3.0...v0.4.0

v0.3.0

11 Mar 23:50
aabf23f

Choose a tag to compare

What's New

Phase 9 — Adjunctions & Advanced Category Theory

  • Adjunction<F, U> trait with unit/counit, plus IdentityAdj and CurryAdj<E> instances
  • State monad and Store comonad derived from the currying adjunction
  • ContravariantAdjunction with ContAdj (self-adjoint continuation functor)
  • ProfunctorAdjunction and ProfunctorFunctor (GAT-as-HKT3)
  • End<P>, Coend<P, A>, DinaturalTransformation<P, Q>
  • ComposeF<F, G> functor composition with HKT + Functor impls

Phase 10 — Effect System & Monad Transformers

  • FunctorSt, ApplicativeSt, ChainSt — parallel functor hierarchy with 'static bounds for Box<dyn Fn> compatibility
  • MonadTrans trait for lifting inner monad into transformer stack
  • Four monad transformers: ExceptTF, WriterTF, ReaderTF, StateTF
  • New karpal-effect crate (no_std compatible)

Roadmap

  • Phase 16 (karpal-topos: topos-theoretic constructions) added
  • Phase 15 extended with sub-phases E–H

Stats

  • 9 crates in workspace
  • 774 tests, all passing
  • Full no_std support across 7 crates

v0.2.0

08 Mar 20:35
145e893

Choose a tag to compare

What's New

New crates

  • karpal-free — Free constructions: Coyoneda, Yoneda, Free Monad, Cofree Comonad, Freer, Day Convolution, FreeAp, FreeAlt, Kan extensions, Codensity, Density
  • karpal-recursion — Recursion schemes: Fix, Nu, cata, ana, hylo, para, apo, histo, futu, zygo, chrono
  • karpal-algebra — Abstract algebra: Group, AbelianGroup, Semiring, Ring, Field, Lattice, BoundedLattice, Module, VectorSpace

Major additions to existing crates

  • karpal-core — Newtype wrappers (Sum, Product, Min, Max, First, Last), tuple Semigroup/Monoid impls, Comonad hierarchy (ComonadEnv, ComonadStore, ComonadTraced), Contravariant hierarchy (Divide, Divisible, Decide, Conclude), Invariant, FunctorFilter, Selective
  • karpal-profunctor — Traversing trait, ForgetF, TaggedF
  • karpal-optics — Iso, Getter, Review, Setter, Traversal, Fold (was Lens + Prism only)

Infrastructure

  • 8 crates in the workspace (up from 5)
  • 614 property-based tests, all passing
  • All new crates are no_std compatible
  • Documentation site with 23 reference pages
  • READMEs for every crate
  • publish.yml updated for all 8 crates

Full changelog

v0.1.0...v0.2.0

v0.1.0

06 Mar 21:41
5499209

Choose a tag to compare

Karpal v0.1.0

First public release of the Karpal HKT library for Rust — a GAT-based higher-kinded type system for the Industrial Algebra ecosystem.

Crates

Crate Description
karpal-core HKT encoding, full functor hierarchy, algebraic structures, comonads, macros (no_std)
karpal-profunctor Profunctor, Strong, Choice with FnP (no_std)
karpal-optics Profunctor optics: Lens, ComposedLens, Prism
karpal-arrow Category/Arrow hierarchy: 8 traits + FnA, KleisliF, CokleisliF (no_std)
karpal-std Prelude re-exports for all crates

Highlights

  • GAT-based HKT encodingtrait HKT { type Of<T>; } / trait HKT2 { type P<A, B>; }, zero dependencies, stable since Rust 1.65
  • Full functor hierarchy — Functor, Apply, Applicative, Chain, Monad, Alt, Plus, Alternative, Bifunctor, Contravariant, Foldable, Traversable, FunctorFilter, Selective, NaturalTransformation
  • Comonad family — Comonad, Extend, ComonadEnv, ComonadStore, ComonadTraced, Invariant
  • Profunctor optics — Lens and Prism via profunctor encoding with composition support
  • Arrow hierarchy — Semigroupoid, Category, Arrow, ArrowChoice, ArrowApply, ArrowLoop, ArrowZero, ArrowPlus
  • do_! / ado_! macros — monadic and applicative do-notation
  • 287 tests including property-based law verification via proptest
  • no_std compatible core crates (karpal-core, karpal-profunctor, karpal-arrow)

Documentation

📖 karpal.industrialalgebra.com

Getting Started

[dependencies]
karpal-std = "0.1.0"
use karpal_std::prelude::*;

let doubled = OptionF::fmap(Some(21), |x| x * 2);
assert_eq!(doubled, Some(42));