A staged division-free integer determinant #
An executable determinant for integer matrices. It runs the stages of Bird's division-free
algorithm, but stores every intermediate stage as a dense table of row vectors, so that each stage
is computed from the materialized previous one. This is meant to avoid recomputation: Mathlib's
BirdDet.birdDet represents each stage as a function whose entries are recomputed recursively,
and Matrix.det is a permutation sum. No bound on the number of ring
operations is proved here; the result is proved equal to Matrix.det.
Main definitions #
Rational.DeterminantAlgorithm.Table: a dense square integer matrix.Rational.DeterminantAlgorithm.denote,Rational.DeterminantAlgorithm.tabulate: conversion between tables and matrices.Rational.DeterminantAlgorithm.determinant: the staged determinant.
Main results #
Rational.DeterminantAlgorithm.determinant_eq: the staged determinant isMatrix.det.
References #
- Adapted from OpenAI's formalization [OAI26a] at revision adc7f1241b42e322a6451854ab7e4b4c146bf78a (file lean/OAI/Computability/RationalHitting/Determinant.lean), via the complexitylib port [Sch26d] at revision add0aca8ee0d71e68969f2cb45cf91554a50f787.
- The shared bridge lemmas in
Complexity/Computability/Circuit/Bird.leanrestate lemmas private in Mathlib's development (Mathlib/LinearAlgebra/Matrix/Determinant/Bird/Correctness.lean, Copyright (c) 2026 Paul Cadman, Apache 2.0).
A dense square integer matrix stored as a vector of row vectors.
Instances For
One division-free Bird determinant stage on stored tables.
Instances For
Compute the determinant from the final Bird stage, including dimension zero.
Instances For
Compatibility bridges #
The public integer-specialized interfaces are retained. Their proofs use the shared
commutative-ring bridges in Complexity/Computability/Circuit/Bird.lean.
A genuine executable determinant, not Matrix.det's permutation sum.