E.P.J. de Haas · Kandinsky College, Nijmegen
The BQ algebra at the Dirac level
At the Dirac level the BQ algebra lives in 4×4 complex matrices, in the Weyl representation. Each of its sixteen basis elements is a 2×2 block matrix whose blocks are BQ-Pauli elements, so every Dirac-level product is a block product of BQ-Pauli products. Only the four vectors βμ are defined by hand; the other twelve elements are their products. All coordinates stay real.
Models
The Dirac-level models will follow the same order as the BQ-Pauli site: first the basis and its products, then vectors, fields and Lorentz transformations, then gravity as a local rapidity.
1The basis
The sixteen basis matrices in their Pauli content, and all 256 products.
BQ-Dirac multiplication table in the Weyl representation
The sixteen 4×4 basis matrices of the Weyl representation, each shown as a 2×2 block matrix of BQ-Pauli elements. Pick any of the 256 products to see it computed by blocks through the BQ-Pauli table and as an ordinary 4×4 complex matrix product.
BQ Weyl and Dirac representations
The matrix S that carries the Weyl representation into the Dirac representation, and why both are used: Weyl for the construction, because the Pauli level and its rotor stay visible as blocks; Dirac for massive spinors, the rest frame and the comparison with the standard formalism. Then the sixteen basis matrices and all 256 products with a Weyl/Dirac switch.
2Vectors and their products
Physical four-vectors on the Weyl vector basis, the products of two and of three of them, and the quadratics of a field.
Bilinear product explorer
Choose two four-vectors from the BQ papers, A = Aμβμ, and see their product split into a scalar, a boost bivector and a spin bivector. No time adjoint is needed. The product is worked out term by term with the BQ-Dirac table, checked by 4×4 matrices, and its lower block is minus the Pauli bilinear ATB.
Triple product explorer
Multiply the even product AB from the left by a third vector D. The result fills only the vector and pseudovector channels. ∂B splits Maxwell’s equations into the sourced and the homogeneous ones, and JB gives the Lorentz four-force with its pseudovector companion. The upper-right block is minus the Pauli triple product.
Field quadratics
A field is an even element f𝟙 + p·α + q·Σ. Its square lands on the scalar and the pseudoscalar χ: for the electromagnetic field these are the two Lorentz invariants. The sandwich FaF is the stress–energy map: with a = βμ it gives energy density, Poynting flux and Maxwell stress. Includes a numerical boost check for invariance and covariance, and the Pauli products FF and FᵀAF as blocks.
3Lorentz transformations, as global rapidity
The Pauli rotor U doubled into the Weyl boost Λ = diag(U−1, U), acting on vectors, bilinears and triples by one similarity.
Lorentz transformations
Choose a four-vector and a velocity and see its boost aL = ΛaΛ−1, with Λ = [[U−1, 0], [0, U]] = e−ψαI/2 the double of the Pauli rotor U. One line of block matrices shows why: the Pauli rules U−1AU−1 and UATU are the two blocks of one similarity. Then the Pauli results lifted: the matrix–rotor lemma βμΛνμ = ΛβνΛ−1, the inverse, invariance and covariance, and an extension beyond the I axis.
Lorentz transformation of the bilinear
Choose A and B freely from the four-vectors of the papers, or click a familiar bilinear (the EM field, the fluid field, RP, JA, UG), and set a velocity. The boost is the same similarity as for vectors, CL = ΛCΛ−1: the scalar and the I components stay, the transverse α and Σ channels mix like E and B. With the invariants, the Pauli rule UCU−1 as the lower block, and the complex form with χ as i.
Covariance of the triple-product equations
Choose D, A and B freely, or click an equation from the papers (Maxwell, the Lorentz force, the interaction and fluid equations), and set a velocity. The triple is boosted by the same similarity, EL = ΛEΛ−1, and its vector and pseudovector sectors each move as a four-vector, so the equations keep their form. With the invariants, the Pauli rule U−1EU−1 as a block, and the four-gradient acting on a boosted field.
Lorentz transformations: Weyl and Dirac
The same boost of a four-vector, side by side in the Weyl and the Dirac representation. The Dirac boost is the Weyl boost carried over by S, ΛD = SΛWS−1: block diagonal in Weyl, mixing the time and space blocks in Dirac. The boosted coordinates are the same in both. With the commuting square, the block mechanism of the mixing, and what it means for spinors.
4Gravity, as local rapidity
The rapidity of the Lorentz boost becomes a field χ(r, t): the same doubled rotor, now a different boost at every point. The Galilean coframe gives the metric, read at the Dirac level as the Clifford square and as the anticommutator of the curved β-matrices.
The gravity rotor at the Dirac level
Newtonian, Hubble and azimuthal rapidity fields feed the BQ-Pauli rotor G, and its Dirac double Qg = diag(G−1, G) = e−χα/2 gives the exact image dRg = QgdRQg−1, whose square is flat. Its Galilean limit θ gives the metric as the Clifford square θθ = ds²𝟙, and gμν as the anticommutator of the β-matrices θμ, where the exact dRg,μ give the flat g⁰μν. With the riverbed, the boosted basis, the comparison with Schwarzschild, de Sitter and Kottler, and a 4×4 check.
CL as an equi-redshift flow
The product of the static and the river observer, u̸su̸, is −c² times the square of the rotor between them: its scalar part is the Lorentz factor γrs = c/√(−gtt), its bivector part the relative velocity. The same operation on the exact rotor gives Γrotor = cosh χr cosh χφ. CL keeps that rapidity along the flow at both levels; they differ only in composing rapidities or adding velocities.
The kinematic route to isorapidity
The active rotor Qg = diag(G, (G†)−1) boosts the rest frame to the river four-velocity Ug by one similarity; its convective acceleration is one commutator with the Dirac Maurer–Cartan form, and orthogonality is the derivative of the Clifford square Ug² = −c²𝟙. Isorapidity is zero power along the flow: the river turns, it does not speed up.
The Maurer–Cartan route to isorapidity and CL
The ordered rotor Qg = Qg,φQg,r carries a Thomas–Wigner bivector; its connection Ωτ = (DQg)Qg−1, transported with Ug, has β0 channel −(c/2)DΓ/Dτ. The lift adds the grade split: the vector grade of UgΩτ is −½ the kinematic acceleration, so the two routes are one object. The virial closure at R gives the CL rotation law.
Reproduce in Python
The folder dirac/py_sources holds an independent SymPy implementation. Each script builds the 4×4 basis from the BQ-Pauli blocks and checks every product exactly along two routes: as a block product through the BQ-Pauli table, and as an ordinary 4×4 complex matrix product.
- 1 · The basis
bq_dirac_table.py· the 16 × 16 table, Pauli block content, Clifford relations, χ, trace orthogonality, block route = 4×4 routebq_dirac_representations.py· Weyl and Dirac representations: the basis in the Dirac representation, the matrix S with XD = SXWS−1, the identical table, S = e−(π/4)β̃0, and the vector and boost in both- 2 · Vectors and their products
bq_dirac_bilinear.py· the channels of AB, the block form with −ATB, all 144 pairs, and ∂A, ∂G, UU, ∂R, ∂∂ from the papersbq_dirac_triple.py· the triple rule, ∂ on a general even field, the block form with −D(ATB), Maxwell and the Lorentz forcebq_dirac_quadratics.py· the field square and the sandwich, the Pauli blocks FF and FTAF, the EM invariants and stress–energy array, the fluid products, and a boost along I- 3 · Lorentz transformations
bq_dirac_lorentz.py· Λ = diag(U−1, U) = e−ψαI/2 as the double of U, the boost of a vector and its blocks, the Dirac lemma, boosts along any n, rotations, and the composition of two boosts with the Thomas–Wigner anglebq_dirac_bilinear_lorentz.py· the boost of C = AB as ΛCΛ−1, the block form with U(ATB)U−1, the channel rule, the invariants, the complex form and the Pauli correspondencebq_dirac_triple_lorentz.py· the boost of E = D(AB) as ΛEΛ−1, both sectors as four-vectors, the invariants, the Pauli rule U−1EU−1, and the four-gradient on a general boosted fieldbq_dirac_lorentz_representations.py· Lorentz transformations, Weyl and Dirac: ΛD = SΛWS−1 in blocks and as a rotor, the commuting square, the same boosted coordinates, the Dirac block mixing, spinors and Λ2, and Λ = e(ψ/2)σI in bothbq_dirac_gravity_rotor.py· the gravity rotor at the Dirac level: Qg = diag(G−1, G) = e−χα/2 and the nested rotor Qg,φQg,r, the exact image dRg with the Pauli image as its block, its flat square, the boosted basis, θθ = ds²𝟙, and {dRg,μ, dRg,ν} = 2g⁰μν𝟙 against {θμ, θν} = 2gμν𝟙, both time orientationsbq_dirac_cl_redshift.py· CL as an equi-redshift flow: the observer product u̸su̸ = −c²γrs(𝟙 − v·α/c) as a rotor squared, γrs and the Killing energy as anticommutators, β̂0β0 with Γrotor, the O(χ⁴) difference, CL along the flowbq_dirac_kinematic_route.py· the kinematic route: the active rotor Qg = diag(G, (G†)−1), Ug with the Pauli Ug as block, the Dirac Maurer–Cartan form diag(Ωτ, −Ωτ†), Ag = [Ωτ, Ug], {Ug, Ag} = 0, isorapidity as zero powerbq_dirac_mc_connection.py· the Maurer–Cartan route: the ordered rotor Qg = Qg,φQg,r with its Thomas–Wigner Σθ part, the connection (DQg)Qg−1 = diag(Ωτ, −Ωτ†), the transport product UgΩτ (vector and pseudovector, β0 channel −(c/2)DΓ/Dτ), its grade split ⟨UgΩτ⟩1 = −½Ag, isorapidity and the virial closure; reports the V5 discrepancies (eqs. 55–56, 66, 89, 95)
Only Python 3 and SymPy are needed.
# get the code and install SymPy git clone https://github.com/haas2u-ai/bq_algebra cd bq_algebra/dirac/py_sources pip install -r requirements.txt # 1 · the basis: all checks and the table python bq_dirac_table.py # one product in detail python bq_dirac_table.py bI bJ # the Dirac representation and the Weyl-to-Dirac matrix python bq_dirac_representations.py # 2 · vectors and their products python bq_dirac_bilinear.py python bq_dirac_triple.py python bq_dirac_quadratics.py # 3 · Lorentz transformations python bq_dirac_lorentz.py python bq_dirac_bilinear_lorentz.py python bq_dirac_triple_lorentz.py python bq_dirac_lorentz_representations.py python bq_dirac_gravity_rotor.py python bq_dirac_cl_redshift.py python bq_dirac_kinematic_route.py python bq_dirac_mc_connection.py
Conventions used throughout
The Dirac level is the BQ algebra in the Weyl representation, built from the BQ-Pauli blocks 1̂, T̂ = i1̂, Î, Ĵ, K̂ and σ̂I, σ̂J, σ̂K: β0 = [[0, T̂], [T̂, 0]] and βi = [[0, K̂i], [−K̂i, 0]], so that β0² = −𝟙 and βi² = +𝟙.
The other elements are products: αi = β0βi, ΣI = βJβK (cyclic), the pseudoscalar χ = −β0βIβJβK and the pseudovectors β̃μ = χβμ. Standard-Model gamma-matrix conventions and General-Relativity index raising are not used.
Each model computes its results from the explicit matrices and shows a numerical check; the Python sources repeat every product as an exact symbolic check. The BQ definitions in the papers remain authoritative.
Links
- 1. The basis: BQ-Dirac multiplication table in the Weyl representation, Weyl and Dirac representations
- 2. Vectors and their products: Bilinear product explorer, Triple product explorer, Field quadratics
- 3. Lorentz transformations: Boosting vectors, Boosting bilinears, Covariance of the triple, Weyl and Dirac
- 4. Gravity: The gravity rotor, CL as an equi-redshift flow, The kinematic route, The Maurer–Cartan route
- The BQ-Pauli models: the algebra, vectors, Lorentz transformations and gravity
- Python sources: exact SymPy reproduction
- bq-galaxy-models: galaxy, jet and SPARC models
- Source on GitHub