----
> [!definition] Definition. ([[nondegenerate bilinear form]])
> Let $V$ be a [[vector space]] over a [[field|field]] $\mathbb{F}$ and let $\langle -,- \rangle$ be a (say, [[symmetric multilinear map|symmetric]]) [[bilinear map|bilinear form]] on $V$. We call the form **nondegenerate** if its [[orthogonal complement|kernel]] is zero, i.e., if for all $v \in V$, the map $\langle v, - \rangle: V \to \mathbb{F}$ is the zero map if and only if $v=0$.
>
>
>
> Note that if $V$ is finite-dimensional, then the form is nondegenerate iff $v \mapsto \langle v,- \rangle$ is an [[isomorphism]] iff its [[matrix of a bilinear form|matrix]] is [[inverse matrix|invertible]]. See also [[musical isomorphism induced by a nondegenerate bilinear form]].
>
>
^definition
> [!generalization]
> $\langle -,- \rangle$ is nondegenerate precisely when $(V, V, \langle -,- \rangle)$ is a [[orthogonal complement|dual pair]].
^generalization
> [!note] Remark.
> We can always turn a degenerate [[bilinear map|bilinear form]] $B(\_,\_)$ into a nondegenerate one $\langle \_,\_ \rangle$ by [[quotient set|quotienting]]. For simplicity we assume [[symmetric multilinear map|symmetric]].
>
> ```tikz
> \usepackage{tikz-cd}
> \usepackage{amsmath}
> \usepackage{amsfonts}
> \usepackage[mathscr]{euscript}
> \usepackage{tikzit}
> \usetikzlibrary{shapes.geometric}
>
> \begin{document}
> % TiKZ style file generated by TikZiT. You may edit this file manually,
> % but some things (e.g. comments) may be overwritten. To be readable in
> % TikZiT, the only non-comment lines must be of the form:
> % \tikzstyle{NAME}=[PROPERTY LIST]
>
> % Node styles
> \tikzstyle{red dot}=[fill={rgb,255: red,191; green,0; blue,64}, draw=black, shape=circle]
> \tikzstyle{green dot}=[fill={rgb,255: red,0; green,128; blue,128}, draw=black, shape=circle]
> \tikzstyle{rectangle}=[fill=white, draw=black, shape=rectangle]
> \tikzstyle{triangle}=[fill=white, draw=black, regular polygon sides=3, regular polygon, shape=regular polygon, tikzit shape=regular polygon, shape border rotate=180, minimum size=5mm, inner sep=0pt]
> \tikzstyle{bullet}=[fill=black, draw=black, shape=circle, minimum size=2mm, inner sep=0pt]
> \tikzstyle{noborder}=[fill=none, draw=none, shape=circle]
> \tikzstyle{widerectangle}=[fill=white, draw=black, shape=rectangle, minimum width=16mm, minimum height=4mm, inner sep=1pt, tikzit shape=rectangle]
>
> % Edge styles
> \tikzstyle{new edge style 0}=[-]
>
>
>
>
> %% paste tikzpicture here
> % https://tikzcd.yichuanshen.de/#N4Igdg9gJgpgziAXAbVABwnAlgFyxMJZABgBpiBdUkANwEMAbAVxiRADUQBfU9TXfIRQBGclVqMWbdgD0AVN14gM2PASJlh4+s1aIOAegA6RgNYwATgAIAQt3EwoAc3hFQAMwsQAtkjIgcCCRRCV02GisTbzo0OEDbAAoaUkijAH0ASkUPL19Ef0CkACYeHJ9i6kLEEIYsMD0QKDo4AAtHEGodKX0TGAAPLDi4KwBCVIgaS1r64BN3BjocLg6QBYAjGAYABX41IRALLCcWnHsuIA
> \begin{tikzcd}
> V \arrow[r, "{v \mapsto B(v, \_)}"] \arrow[d] & V^* \\
> V/\ker B \arrow[ru, "\exists ! \overline{\flat}"', dashed, hook] &
> \end{tikzcd}
> %% end paste
>
> \end{document}
> ```
>
> Then can moreover use [[dual of quotient is annihilator]] to naturally identify $\overline{\flat}$ with $\flat:V/\operatorname{ker }B \to (V/\operatorname{ker }B)^{*}$:
>
> ```tikz
> \usepackage{tikz-cd}
> \usepackage{amsmath}
> \usepackage{amsfonts}
> \usepackage[mathscr]{euscript}
> \usepackage{tikzit}
> \usetikzlibrary{shapes.geometric}
>
> \begin{document}
> % TiKZ style file generated by TikZiT. You may edit this file manually,
> % but some things (e.g. comments) may be overwritten. To be readable in
> % TikZiT, the only non-comment lines must be of the form:
> % \tikzstyle{NAME}=[PROPERTY LIST]
>
> % Node styles
> \tikzstyle{red dot}=[fill={rgb,255: red,191; green,0; blue,64}, draw=black, shape=circle]
> \tikzstyle{green dot}=[fill={rgb,255: red,0; green,128; blue,128}, draw=black, shape=circle]
> \tikzstyle{rectangle}=[fill=white, draw=black, shape=rectangle]
> \tikzstyle{triangle}=[fill=white, draw=black, regular polygon sides=3, regular polygon, shape=regular polygon, tikzit shape=regular polygon, shape border rotate=180, minimum size=5mm, inner sep=0pt]
> \tikzstyle{bullet}=[fill=black, draw=black, shape=circle, minimum size=2mm, inner sep=0pt]
> \tikzstyle{noborder}=[fill=none, draw=none, shape=circle]
> \tikzstyle{widerectangle}=[fill=white, draw=black, shape=rectangle, minimum width=16mm, minimum height=4mm, inner sep=1pt, tikzit shape=rectangle]
>
> % Edge styles
> \tikzstyle{new edge style 0}=[-]
>
>
>
>
> %% paste tikzpicture here
> % https://tikzcd.yichuanshen.de/#N4Igdg9gJgpgziAXAbVABwnAlgFyxMJZABgBpiBdUkANwEMAbAVxiRADUQBfU9TXfIRQBGclVqMWbdgD0AVN14gM2PASKjh4+s1aIQACgA6RgNYwATgAIAQgEoZJgMZYLTxX1WCiZAEzbJPRATADMLOidgdi5gE3NrGy4PZX41IWRRf2odKX1jIzCIqJi4y1suBwUucRgoAHN4IlAwiABbJDIQHAgkYR5mizaO6m6kAGZ+kBb2xDGRnsQAFmoGOgAjGAYABVTvfQssOoALHBBswLZQ1dPqOCOsENPEYknp8fmkZYldS6Nsdtegxmvg+iFEXToWAYbCOEAgpmSb0QIK6Cy+OSCJn+iKB71RSBRGN+MAAHlg4Dg4FYAIQmCA0SwMLBgGCxArXJIrdabHZedT7Q4nM4gJksthQOh3WrcChcIA
> \begin{tikzcd}
> V \arrow[r] \arrow[dd] & V^* \\
> & (\ker B)^\circ \arrow[u, hook] \arrow[d, "\sim"] \\
> \frac{V}{\ker B} \arrow[r, "\flat"'] \arrow[r, "\sim"] \arrow[ru, "\exists !\overline{\flat}"', dashed] & (\frac{V}{\ker B})^*
> \end{tikzcd}
> %% end paste
>
> \end{document}
> ```
>
>
> Now the [[the tensor product is left-adjoint to hom|tensor-hom adjunction]] [[universal property|universally]] converts the [[linear map|linear map]] $\frac{V}{\operatorname{ker }B} \xrightarrow{\flat}\left( \frac{V}{\operatorname{ker }B} \right)^{*}$ into a [[bilinear map|bilinear form]] $\overline{B}$ on $\frac{V}{\operatorname{ker }B}$, and $\overline{B}$ is [[nondegenerate bilinear form|nondegenerate]] since $\flat$ is an [[isomorphism|isomorphism]] onto its image. Tracing through the identifications, we see that $\overline{B}$ is (well-)defined as $\overline{B}([v], [w])=B(v, w)$. Note that the original and quotiented spaces are isometric.
>
[^1]: Since $V$ finite-dimensional, $\dim V=\dim V^{*}$ and checking this claim amounts to checking that the kernel of $v \mapsto \langle v,- \rangle$ is trivial. But this
----
####
----
#### References
> [!backlink]
> ```dataview
> TABLE rows.file.link as "Further Reading"
> FROM [[]]
> FLATTEN file.tags as Tag
> WHERE Tag = "#definition" OR Tag = "#theorem" OR Tag = "#MOC" OR Tag = "#proposition" OR Tag = "#axiom"
> GROUP BY Tag
> ```
> [!frontlink]
> ```dataview
> TABLE rows.file.link as "Further Reading"
> FROM outgoing([[]])
> FLATTEN file.tags as Tag
> WHERE Tag = "#definition" OR Tag = "#theorem" OR Tag = "#MOC" OR Tag = "#proposition" OR Tag = "#axiom"
> GROUP BY Tag
> ```