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.

grade 0𝟙 vectorβ0  βI  βJ  βK boostαI  αJ  αK spinΣI  ΣJ  ΣK pseudovectorβ̃0  β̃I  β̃J  β̃K pseudoscalarχ

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.

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.

A B 𝟙scalar αboost Σspin lower block = −AᵀB, the Pauli bilinear
Dirac step 2 · two four-vectors

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.

AB = −(a0b0 − a·b)𝟙 + (a0b − ab0)·α + (a×b)·Σ
RP, ∂A, UG, ∂GPauli correspondence
Open the explorer
D ( A B ) βμvector Gauss–Ampère, four-force β̃μpseudovector Gauss–Faraday upper-right block = −D(AᵀB), the Pauli triple
Dirac step 3 · three four-vectors

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.

DC = (d0s − d·cα)β0 + (ds − d0cα − d×cΣ)·β − (d·cΣ)β̃0 + (d×cα − d0cΣ)·β̃
∂B = −μ₀JJB, UH, ∂H
Open the explorer
F F 𝟙E²/c² − B² χ−(2/c) E·B  · invariants F βμ F u, S/c · energy, flux S/c, σij · momentum, stress lower block FF, upper block FᵀAF: the Pauli quadratics
Dirac step 4 · quadratics of a field

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.

BB = (E²/c² − B²)𝟙 − (2/c)(E·B)χ,   −Bβ0B/(2μ0) = uEMβ0 + (S/c)·β
invariantsstress–energy mapfluid H
Open the model

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.

Pauli: two rules U⁻¹AU⁻¹,  UAᵀU Dirac: one similarity Λ = U⁻¹0 0U = e−ψαI/2 a ↦ ΛaΛ⁻¹ two boosts across: boost + Thomas–Wigner rotation
Dirac step 5 · boosting vectors

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.

aL = ΛaΛ−1,   Λ = cosh(ψ/2)𝟙 − sinh(ψ/2)αI = diag(U−1, U)
doubling of UDirac lemmaThomas–Wigner
Open the model
CL = ΛCΛ⁻¹ 𝟙, αI, ΣI : unchanged αJ⇄ΣK αK⇄ΣJ E′J = γ(EJ − vBK) lower block: the Pauli rule UCU⁻¹ for C = AᵀB
Dirac step 6 · boosting bilinears

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.

c′α,J = γ(cα,J − βcΣ,K),   c′Σ,K = γ(cΣ,K − βcα,J)
E and B mixinvariantsPauli UCU⁻¹ inside
Open the model
EL = ΛEΛ⁻¹ (e₀, e) → Λνμ : vector (r₀, r) → Λνμ : pseudovector ∂B = −μ₀J in every frame upper block: the Pauli rule U⁻¹EU⁻¹
Dirac step 7 · covariance of the triple

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.

DL(ALBL) = ΛDΛ−1ΛCΛ−1 = ΛEΛ−1
Maxwell covarianttwo four-vectorsPauli U⁻¹EU⁻¹ inside
Open the model
Λ WeylΛ Dirac U⁻¹U ccsσsσ S Λ S⁻¹ a′μ = γ(a₀ − βa₁), … in both separate blocks vs hyperbolic mixing
Dirac step 8 · the boost in two representations

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.

ΛD = SΛWS−1 = [[c 1̂, s σ̂I], [s σ̂I, c 1̂]]
Weyl ↔ Diracsame a′μspinors
Open the model

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.

v = c Qg = diag(G⁻¹, G) = e−χα/2 {θ̸μ, θ̸ν} = 2gμν𝟙 riverbed v = cχ and the PG metric
Dirac step 9 · gravity as a local rotor

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.

dRg = Qg dR Qg−1,  {θμ, θν} = 2gμν𝟙
rapidity buttonsexact vs GalileanClifford square
Open the model
u̸u̸sχrs u̸su̸ = −c²e−χ n·α γ: the scalar part
Dirac step 10 · CL as an equi-redshift flow

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.

⟨u̸su̸⟩ constant along the flow  ⇔  vr² + vφ² = K
observer rotorrotor vs metricredshift map
Open the model
U̸A̸ A̸ = [Ω̸, U̸] {U̸, A̸} = 0 a₀ = c DΓ/Dτ isorapidity: zero power, the river only turns
Dirac step 11 · the kinematic route

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.

Ag = [Ωτ, Ug],  {Ug, Ag} = 0
longitudinal fractiongalaxy-scale preset4×4 check
Open the model
U̸ Ω̸ = ⟨U̸ Ω̸⟩₁ + ⟨U̸ Ω̸⟩₃ −½ A̸ (step 11) Y_θ β̃_θ [U̸ Ω̸]_β₀ = −(c/2) DΓ/Dτ isorapidity: the β₀ channel vanishes, CL follows
Dirac step 12 · the Maurer–Cartan route

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.

⟨UgΩτ⟩1 = −½Ag,  X0 = −(c/2)DΓ/Dτ
rotation curvegalaxy-scale preset4×4 check
Open the model

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 route
  • bq_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 papers
  • bq_dirac_triple.py · the triple rule, ∂ on a general even field, the block form with −D(ATB), Maxwell and the Lorentz force
  • bq_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 angle
  • bq_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 correspondence
  • bq_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 field
  • bq_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 both
  • bq_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 orientations
  • bq_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 flow
  • bq_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 power
  • bq_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