//! Bilinear forms: `B: V × V → F`, linear in each argument.
//!
//! A form is a separate object from the space it acts on (a Gram matrix, an
//! inner product, a metric tensor). The hierarchy declares the shape;
//! `crate::laws` tests the bilinearity, symmetry, and positive-definiteness
//! axioms. The operator pair is fixed to the additive/multiplicative one —
//! the only one with a meaningful notion of scalar multiplication.
use crate;
use crate;
/// A bilinear form over a vector space: `B(u, v)` linear in both arguments
/// (the bilinearity laws are in the `crate::laws` module, feature `proptest`).
/// A symmetric bilinear form: `B(u, v) = B(v, u)` (a law).
/// A positive-definite bilinear form: `B(v, v) > 0` for every `v ≠ 0`
/// (a law, which requires an ordered scalar field). An inner product is the
/// canonical example.