|
23 | 23 | - **hex-poly-smith**: Smith normal form over `F[x]`, monic pivot normalization, unimodular transforms with inverses, and the structure of a finitely generated `F[x]`-module |
24 | 24 | - **hex-invariant-factors**: the ordered invariant factors of a square matrix from the polynomial Smith form of `xI - A`, including unit factors and the dimension-zero conventions |
25 | 25 | - **hex-gram-schmidt**: Gram-Schmidt orthogonalization, GS coefficients, Gram determinants, update formulas under row operations |
| 26 | +- **hex-graph**: immutable finite simple directed and undirected graphs, checked construction, maps, subgraphs, traversal, and executable adjacency |
| 27 | +- **hex-graph-iso**: nauty-compatible canonical forms, canonical labels, checked transporters, and positive and negative `graph_iso` proofs for finite ordered-coloured simple graphs |
26 | 28 | - **hex-mod-arith**: `ZMod64 p`, `UInt64`-backed arithmetic in `Z/pZ` |
27 | 29 | - **hex-modular**: integer CRT, rational reconstruction, symmetric representatives, and the modulus supply |
28 | 30 | - **hex-padics**: fixed-precision approximations to `Z_p` and `Q_p`, with the valuation reported as a bound when that is all the data supports, precision-aware arithmetic, partial inversion and division, and exactification by rational reconstruction |
@@ -96,6 +98,7 @@ Mathlib, and supplies correspondence proofs or Mathlib-facing APIs): |
96 | 98 | - **hex-gfq-mathlib**: finiteness/cardinality for quotient fields, and `GFq p n ≃+* GaloisField p n` |
97 | 99 | - **hex-berlekamp-zassenhaus-mathlib**: unconditional factoring correctness, `Decidable (Irreducible f)` for `Polynomial ℤ`; the `Polynomial ℤ` and strong `Hex.ZPoly` extensions for `factor_poly` / `irreducibility` |
98 | 100 | - **hex-summation-mathlib**: `Finset.sum` semantics over characteristic-zero fields, the `Nat.choose` / `Nat.factorial` / `ascPochhammer` ratio kit, the summand recognizer, and the `gosper`, `zeilberger`, and `hyper` tactics |
| 101 | +- **hex-graph-iso-mathlib**: correspondence with finite `SimpleGraph`, ordered-colour isomorphisms, and the `SimpleGraph` extension of `graph_iso` |
99 | 102 |
|
100 | 103 | ## Implementation dependencies |
101 | 104 |
|
@@ -123,6 +126,8 @@ Each library with its immediate dependencies: |
123 | 126 | - **hex-smith**: hex-hermite |
124 | 127 | - **hex-poly-smith**: hex-poly, hex-matrix, hex-determinant |
125 | 128 | - **hex-invariant-factors**: hex-poly-smith |
| 129 | +- **hex-graph**: hex-basic |
| 130 | +- **hex-graph-iso**: hex-graph |
126 | 131 | - **hex-mod-arith**: hex-arith |
127 | 132 | - **hex-modular**: hex-arith |
128 | 133 | - **hex-padics**: hex-arith, hex-modular, hex-primality, hex-basic |
@@ -196,6 +201,7 @@ Mathlib companion libraries (each also depends on Mathlib): |
196 | 201 | - **hex-gfq-mathlib**: hex-gfq, hex-gf2-mathlib |
197 | 202 | - **hex-berlekamp-zassenhaus-mathlib**: hex-berlekamp-zassenhaus, hex-poly-z-mathlib |
198 | 203 | - **hex-summation-mathlib**: hex-summation |
| 204 | +- **hex-graph-iso-mathlib**: hex-graph-iso |
199 | 205 |
|
200 | 206 | LLL is the recombination primitive used by Berlekamp-Zassenhaus: BZ |
201 | 207 | encodes its lifted local factors as a lattice basis and calls |
@@ -308,6 +314,19 @@ The algebraic graph has three independent roots: hex-poly, hex-arith, |
308 | 314 | and hex-matrix. The module-boundary helpers in hex-basic are an |
309 | 315 | additional utility root used across the graph. |
310 | 316 |
|
| 317 | +The graph-isomorphism pair is independent of the algebraic libraries. |
| 318 | +`hex-graph-iso` keeps private dense execution data but exposes only |
| 319 | +`hex-graph` values. Its Mathlib companion contains the finite `SimpleGraph` |
| 320 | +correspondence until another graph algorithm needs that conversion. The |
| 321 | +complete contracts are in [hex-graph-iso](hex-graph-iso.md) and |
| 322 | +[hex-graph-iso-mathlib](hex-graph-iso-mathlib.md). |
| 323 | + |
| 324 | +``` |
| 325 | +hex-basic -- hex-graph -- hex-graph-iso -- hex-graph-iso-mathlib |
| 326 | + | |
| 327 | + Mathlib |
| 328 | +``` |
| 329 | + |
311 | 330 | ``` |
312 | 331 | hex-poly hex-arith hex-matrix |
313 | 332 | / \ | / \ |
|
0 commit comments