logo

Axioms for the theory of proveit.linear_algebra.inner_products

In [1]:
import proveit
# Prepare this notebook for defining the axioms of a theory:
%axioms_notebook # Keep this at the top following 'import proveit'.

from proveit import x, y, K, H
from proveit.logic import Iff, And, Forall, Equals, InSet, InClass
from proveit.numbers import sqrt
from proveit.abstract_algebra import Fields
from proveit.linear_algebra import VecSpaces, InnerProdSpaces, InnerProd, Norm
In [2]:
%begin axioms
Defining axioms for theory 'proveit.linear_algebra.inner_products'
Subsequent end-of-cell assignments will define axioms
%end_axioms will finalize the definitions

An inner product space is defined as a vector space which also defines an inner product binary operation that always produces a scalar.

In [3]:
inner_prod_space_def = Forall(
    (K, H), Equals(
        InClass(H, InnerProdSpaces(K)),
        And(InClass(H, VecSpaces(K)),
            Forall((x, y), InSet(InnerProd(x, y), K)))))
Out[3]:
inner_prod_space_def:

We define the norm of a vector to be the square root of its inner product with itself.

In [4]:
norm_def = Forall(
    K, Forall(H, Forall(x, Equals(Norm(x), sqrt(InnerProd(x, x))),
                        domain=H),
              domain=InnerProdSpaces(K)))
Out[4]:
norm_def:
In [5]:
%end axioms
These axioms may now be imported from the theory package: proveit.linear_algebra.inner_products