Rewrite Rulesphysics/physics-braket-expand

physics/physics-braket-expand

Expand braket to an explicit angle-bracket form with a middle bar.

Rewrite patterns#

  1. braket-two-arg-auto-sized\braket{#1}{#2}\left\langle #1 \middle\vert #2 \right\rangle
  2. braket-two-arg-fixed-size\braket*{#1}{#2}\langle #1 \vert #2 \rangle
  3. braket-single-arg-auto-sized\braket{#1}\left\langle #1 \middle\vert #1 \right\rangle
  4. braket-single-arg-fixed-size\braket*{#1}\langle #1 \vert #1 \rangle

Examples#

Each example shows this rule applied in isolation. A complete normalization profile may make additional changes.

braket orthonormality#

Before

\braket{\psi_n}{\psi_m}=\delta_{nm}

After this rule

\left\langle \psi_n \middle\vert \psi_m \right\rangle=\delta_{nm}

Rendering verified with the declared packages.

braket single argument self overlap#

Before

N=\braket{\psi}

After this rule

N=\left\langle \psi \middle\vert \psi \right\rangle

Rendering verified with the declared packages.

braket star fixed size#

Before

\braket*{u}{v}=0

After this rule

\langle u \vert v \rangle=0

Rendering verified with the declared packages.

Same family#

Notes#

Covers physics single-argument and two-argument forms. In physics, the single-argument form repeats the argument on both sides; the braket package single-argument bar parser is package-specific and should remain separate from the physics transform.

Disable this rule#

TransformEngine(profile="corpus", disable_rules=["physics/physics-braket-expand"])
new TransformEngine({ profile: 'corpus', disableRules: ['physics/physics-braket-expand'] })

Open in Playground