Basic node identities #
This file contains the basic node identities for tensor trees. More complicated identities appear in there own files.
Equality of constructors. #
A constVecNode
has equal tensor to the vecNode
with the map evaluated at 1.
Equations
- TensorTree.constVecNode_eq_vecNode = { deps := [`TensorTree.constVecNode, `TensorTree.vecNode] }
Instances For
A constTwoNode
has equal tensor to the twoNode
with the map evaluated at 1.
Equations
- TensorTree.constTwoNode_eq_twoNode = { deps := [`TensorTree.constTwoNode, `TensorTree.twoNode] }
Instances For
Tensornode #
The tensor node of a tensor tree's tensor has a tensor which is the tensor tree's tensor.
Negation #
Two neg
nodes of a tensor tree cancel.
A neg
node can be moved out of the LHS of a prod
node.
A neg
node can be moved out of the RHS of a prod
node.
A neg
node can be moved through a perm
node.
The negation of a tensor tree plus itself is zero.
A tensor tree plus its negation is zero.
Basic perm identities #
Applying two permutations is the same as applying the transitive permutation.
Applying the identity permutation is the same as not applying a permutation.
Applying a permutation which is equal to the identity permutation is the same as not applying a permutation.
Given an equality of tensors corresponding to tensor trees where the tensor tree on the left finishes with a permutation node, this permutation node can be moved to the tensor tree on the right. This lemma holds here for isomorphisms only, but holds in practice more generally.
A permutation of a tensor tree t1
has equal tensor to a tensor tree t2
if and only if
the inverse-permutation of t2
has equal tensor to t1
.
Vector based identities #
These identities are related to the fact that all the maps are linear.
Two smul
nodes can be replaced with a single smul
node with
the product of the two scalars.
An smul
-node with scalar 1
does nothing.
An smul
-node with scalar equal to 1
does nothing.
The addition node is commutative.
The addition node is associative.
When the same permutation acts on both arguments of an addition, the permutation can be moved out of the addition.
When a perm
acts on an add node, it can be moved through the add-node
to act on each of the two parts.
A smul
node can be moved through an perm
node.
When the same evaluation acts on both arguments of an addition, the evaluation can be moved out of the addition.
When a prod
acts on an add node on the left, it can be moved through the add-node
to act on each of the two parts.
When a prod
acts on an add node on the right, it can be moved through the add-node
to act on each of the two parts.
A smul
node in the LHS of a prod
node can be moved through that prod
node.
A smul
node in the RHS of a prod
node can be moved through that prod
node.
When a prod
node acts on an add
node in both the LHS and RHS entries,
it can be moved through both add
nodes.
Nodes and the group action. #
An action
node can be moved through a prod
node when acting on both elements.
An action
node can be moved through a perm
node.
An action
node can be moved through a neg
node.
Two action
nodes can be combined into a single action
node.
The action
node for the identity leaves the tensor invariant.
An action
node on a constTwoNode
leaves the tensor invariant.
An action
node on a constThreeNode
leaves the tensor invariant.