1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//! # Constraint-CRDT
//!
//! CRDT-backed constraint states for distributed fleet consensus.
//!
//! Extracts the CRDT merge protocol from SmartCRDT and fuses it with
//! constraint theory semantics. Every constraint state is a CRDT that
//! merges without coordination — the mathematical foundation for
//! holonomy-consensus across fleet nodes.
//!
//! ## Core insight
//!
//! CRDTs satisfy three algebraic laws (commutative, associative, idempotent).
//! Constraint satisfaction requires closure under lattice operations.
//! These are THE SAME algebraic structure — a semilattice.
//!
//! ## What you get
//!
//! - `Merge` — the semilattice join trait
//! - `ConstraintState` — composite CRDT combining all sub-CRDTs
//! - `ConstraintGCounter` — distributed satisfaction counting
//! - `PNCounter` — positive/negative counting (decrement support)
//! - `ConstraintORSet` — add-wins constraint tracking with tombstone GC
//! - `EisensteinRegister` — lattice positions as LWW registers
//! - `FleetTile` — PLATO tiles as mergeable CRDTs
//! - `VectorClock` — causal ordering across nodes
//! - `DeltaTracker` / `ConstraintDelta` — send only changes, not full state
//! - `PlatoClient` — HTTP client for PLATO tile server
//!
//! ## Algebraic laws verified
//!
//! Every CRDT type is tested for:
//! - **Commutativity**: `a ∘ b == b ∘ a`
//! - **Associativity**: `(a ∘ b) ∘ c == a ∘ (b ∘ c)`
//! - **Idempotence**: `a ∘ a == a`
pub use Merge;
pub use ConstraintState;
pub use ConstraintGCounter;
pub use PNCounter;
pub use ConstraintORSet;
pub use EisensteinRegister;
pub use FleetTile;
pub use VectorClock;
pub use ;
pub use PlatoClient;