-----------------------------------------------------------------------------
-- |
-- Module      :  Math.Tensor.Examples.Gravity.DiffeoSymEqns
-- Copyright   :  (c) 2019 Tobias Reinhart and Nils Alex
-- License     :  MIT
-- Maintainer  :  tobi.reinhart@fau.de, nils.alex@fau.de
--
--
-- This module collects several tensorial equations.
-- These equations arise in the research topic of perturbative constructive gravity and are used there to encode perturbative diffeomorphism invariance.
--
-- Providing further usage examples of the sparse-tensor package the equations included here nicely illustrate the syntax that is used when entering tensors.
-- They also show how the sparse-tensor package can be used to manipulate not only tenors but linear tensorial equations. The sparse-tensor package can for instance be used to extract the information that is contained in such a tensorial equation in matrix form. This then obviously allows one
-- to computate the rank of the linear tensorial equation or even explicitly solve it.
--
--
-- All equations that are contained in this module are functions that take possibly several tensors of type @'ATens' 'AnsVarR'@ as input. These tensors then represent
-- the individual unknown tensors in the equation. The output that is computed by the functions is also of this type.
--
-- When illustrating how the individual such equations that are included in this module are defined we will use again the same convention as in the "Math.Tensor.Examples.Gravity" module, i.e. we label indices of type @'Ind20'@ by \(A,B,C,D,...\), indices of type
-- \(I,J,K,L,...\) and spacetime indices of type @'ind3'@ are labeled by \(a,b,c,d,...\). Hence a general such tensor is displayed as \(T^{A_1...A_m I_1...I_r a_1...a_p}_{B_1...B_n J_1...J_s b_1...b_s} \).
-- Such a tensor then has the type @'ATens' m n r s p q@.
-----------------------------------------------------------------------------
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE GADTs #-}

module Math.Tensor.Examples.Gravity.DiffeoSymEqns (
-- * Lorentz Invariance
-- ** Area Metric
-- | The following equations encode the requirement that the input tensors are Lorentz invariant. They can be used to verify the Lorentz invariant tensors that are obtained by
-- the "Math.Tensor.LorentzGenerator" module. If the input tensor is Lorentz invariant the functions return a tensor with all values being zero, and thus for instance applying @'tensorRank6''@ to these
-- returns zero.
ansatzA, ansatzAI, ansatzAB, ansatzAaBb, ansatzABI, ansatzAIBJ, ansatzABC, ansatzABCI, ansatzABbCc, ansatzAaBbCI, ansatzABICJ,
ansatzAIBJCK, ansatzABCD, ansatzABCDJ, ansatzABCcDd,
-- * Perturbative Diffeomorphism Equivariance
-- ** Area Metric
-- | The following equations can be used with the Lorentz invariant ansätze for the area metric \(G_A = J_A^{abcd}G_{abcd}\) with the symmetries \(G_{abcd} = G_{cdab} = -G_{bacd} \) as input tensors.
-- In the following documentation these input tensors are labeled as \(a_0,a^{A}, a^{AI}, a^{AB},\) etc. For the definition of the further included tensors see  "Math.Tensor.Examples.Gravity".
eqn1, eqn3, eqn1A, eqn1AI,  eqn2Aa, eqn3A, eqn1AB, eqn1ABI, eqn1AaBb, eqn2ABb, eqn3AB,
-- ** Metric
-- | The following equations can be used with the Lorentz invariant ansätze for the a traditional metric \(g_I = J_I^{ab}g_{ab}\) as input.
-- In the following documentation these input tensors are labeled as \(a_0,a^{A}, a^{AJ}, a^{AB},\) etc. Care must be taken as for the case of the metric equations all indices that are labeled by \(A,B,C,D,... \) are also of type @'Ind9'@,
-- but are distinguished from the indices labeled by \(I,J,K,L,...\) as they describe the metric components and the latter ones describe symmetric spacetime derivative pairs.
-- For the definition of the further included tensors see  "Math.Tensor.Examples.Gravity".
eqn1Met, eqn3Met, eqn2AaMet, eqn3AMet, eqn1AMet, eqn1AIMet, eqn1ABMet, eqn1ABIMet, eqn1AaBbMet, eqn2ABbMet, eqn3ABMet
) where

import Math.Tensor
import Math.Tensor.Examples.Gravity

import qualified Data.IntMap.Strict as I

--the ansatz integrability conditions (when perturbing around eta*eta-eta*eta-epsilon)

ansatzA :: ATens 1 0 0 0 0 0 AnsVarR -> ATens 1 0 0 0 2 0 AnsVarR
ansatzA :: ATens 1 0 0 0 0 0 AnsVarR -> ATens 1 0 0 0 2 0 AnsVarR
ansatzA ATens 1 0 0 0 0 0 AnsVarR
ans4 = (Int, Int)
-> ATens 1 0 0 0 2 0 AnsVarR -> ATens 1 0 0 0 2 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
0,Int
1) (ATens 1 0 0 0 2 0 AnsVarR -> ATens 1 0 0 0 2 0 AnsVarR)
-> ATens 1 0 0 0 2 0 AnsVarR -> ATens 1 0 0 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (1 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 1 0 0 0 2 0 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (1 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
 -> ATens 1 0 0 0 2 0 AnsVarR)
-> AbsTensor2
     (1 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 1 0 0 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 2 1 0 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 2 1 0 0 2 0 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
1,Int
0) (AbsTensor6 2 1 0 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 2 1 0 0 2 0 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 2 1 0 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 2 1 0 0 2 0 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 1 0 0 0 0 0 AnsVarR
ans4 ATens 1 0 0 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 1 0 0 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea Tensor
  2
  Ind20
  (Tensor
     1
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        2
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA

ansatzAa :: ATens 1 0 0 0 1 0 AnsVarR -> ATens 1 0 0 0 3 0 AnsVarR
ansatzAa :: ATens 1 0 0 0 1 0 AnsVarR -> ATens 1 0 0 0 3 0 AnsVarR
ansatzAa ATens 1 0 0 0 1 0 AnsVarR
ans5 = (Int, Int)
-> ATens 1 0 0 0 3 0 AnsVarR -> ATens 1 0 0 0 3 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
0,Int
2) (ATens 1 0 0 0 3 0 AnsVarR -> ATens 1 0 0 0 3 0 AnsVarR)
-> ATens 1 0 0 0 3 0 AnsVarR -> ATens 1 0 0 0 3 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (1 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 3 0 Ind3 AnsVarR))
-> ATens 1 0 0 0 3 0 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (1 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 3 0 Ind3 AnsVarR))
 -> ATens 1 0 0 0 3 0 AnsVarR)
-> AbsTensor2
     (1 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 3 0 Ind3 AnsVarR))
-> ATens 1 0 0 0 3 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 2 1 0 0 (3 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 2 1 0 0 3 0 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
0,Int
0) (AbsTensor6 2 1 0 0 (3 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 2 1 0 0 3 0 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 2 1 0 0 (3 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 2 1 0 0 3 0 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 2 1 0 0 (4 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 2 1 0 0 4 1 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
3,Int
0) (AbsTensor6 2 1 0 0 (4 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 2 1 0 0 4 1 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 2 1 0 0 (4 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 2 1 0 0 4 1 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 1 0 0 0 1 0 AnsVarR
ans5 ATens 1 0 0 0 1 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational))))
-> TProd
     (ATens 1 0 0 0 1 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational))))
interEqn2 Tensor
  2
  Ind20
  (Tensor
     1
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 2 Ind3 AnsVarR)))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        2
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 2 Ind3 AnsVarR))))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA

ansatzAI :: ATens 1 0 1 0 0 0 AnsVarR -> ATens 1 0 1 0 2 0 AnsVarR
ansatzAI :: ATens 1 0 1 0 0 0 AnsVarR -> ATens 1 0 1 0 2 0 AnsVarR
ansatzAI ATens 1 0 1 0 0 0 AnsVarR
ans6 = (Int, Int)
-> ATens 1 0 1 0 2 0 AnsVarR -> ATens 1 0 1 0 2 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
0,Int
1) (ATens 1 0 1 0 2 0 AnsVarR -> ATens 1 0 1 0 2 0 AnsVarR)
-> ATens 1 0 1 0 2 0 AnsVarR -> ATens 1 0 1 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (1 + 1) (0 + 1) Ind20 (Tensor2 1 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 1 0 1 0 2 0 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (1 + 1) (0 + 1) Ind20 (Tensor2 1 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
 -> ATens 1 0 1 0 2 0 AnsVarR)
-> AbsTensor2
     (1 + 1) (0 + 1) Ind20 (Tensor2 1 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 1 0 1 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     2 1 (1 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
-> AbsTensor4 2 1 1 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   2 1 (1 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
 -> AbsTensor4 2 1 1 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> AbsTensor4
     2 1 (1 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
-> AbsTensor4 2 1 1 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 2 1 2 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 2 1 2 1 2 0 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
1,Int
0) (AbsTensor6 2 1 2 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 2 1 2 1 2 0 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 2 1 2 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 2 1 2 1 2 0 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 1 0 1 0 0 0 AnsVarR
ans6 ATens 1 0 1 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 1 0 1 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interEqn3 Tensor
  2
  Ind20
  (Tensor
     1
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        2
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA

ansatzAB :: ATens 2 0 0 0 0 0 AnsVarR -> ATens 2 0 0 0 2 0 AnsVarR
ansatzAB :: ATens 2 0 0 0 0 0 AnsVarR -> ATens 2 0 0 0 2 0 AnsVarR
ansatzAB ATens 2 0 0 0 0 0 AnsVarR
ans8 = (Int, Int)
-> ATens 2 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 2 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
symATens1 (Int
0,Int
1) (ATens 2 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 2 0 AnsVarR)
-> ATens 2 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 2 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 2 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
0,Int
1) (ATens 2 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 2 0 AnsVarR)
-> ATens 2 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 2 0 0 0 2 0 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (2 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
 -> ATens 2 0 0 0 2 0 AnsVarR)
-> AbsTensor2
     (2 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 2 0 0 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 3 1 0 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 3 1 0 0 2 0 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
1,Int
0) (AbsTensor6 3 1 0 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 3 1 0 0 2 0 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 3 1 0 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 3 1 0 0 2 0 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 0 0 AnsVarR
ans8 ATens 2 0 0 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea Tensor
  3
  Ind20
  (Tensor
     1
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        3
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA

ansatzAaBb :: ATens 2 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 4 0 AnsVarR
ansatzAaBb :: ATens 2 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 4 0 AnsVarR
ansatzAaBb ATens 2 0 0 0 2 0 AnsVarR
ans10_1 = ATens 2 0 0 0 4 0 AnsVarR
block1 ATens 2 0 0 0 4 0 AnsVarR
-> ATens 2 0 0 0 4 0 AnsVarR -> ATens 2 0 0 0 4 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 4 0 AnsVarR
block2
    where
        block1 :: ATens 2 0 0 0 4 0 AnsVarR
block1 = (Int, Int)
-> ATens 2 0 0 0 4 0 AnsVarR -> ATens 2 0 0 0 4 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
1,Int
3) (ATens 2 0 0 0 4 0 AnsVarR -> ATens 2 0 0 0 4 0 AnsVarR)
-> ATens 2 0 0 0 4 0 AnsVarR -> ATens 2 0 0 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
-> ATens 2 0 0 0 4 0 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (2 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
 -> ATens 2 0 0 0 4 0 AnsVarR)
-> AbsTensor2
     (2 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
-> ATens 2 0 0 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 3 1 0 0 (4 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 3 1 0 0 4 0 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
0,Int
0) (AbsTensor6 3 1 0 0 (4 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 3 1 0 0 4 0 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 3 1 0 0 (4 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 3 1 0 0 4 0 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 3 1 0 0 (5 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 3 1 0 0 5 1 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
4,Int
0) (AbsTensor6 3 1 0 0 (5 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 3 1 0 0 5 1 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 3 1 0 0 (5 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 3 1 0 0 5 1 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 2 0 AnsVarR
ans10_1 ATens 2 0 0 0 2 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 2 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational))))
interEqn2 Tensor
  3
  Ind20
  (Tensor
     1
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 4 Ind3 (Tensor 2 Ind3 AnsVarR)))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        3
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 4 Ind3 (Tensor 2 Ind3 AnsVarR))))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA
        block2 :: ATens 2 0 0 0 4 0 AnsVarR
block2 = (Int, Int)
-> ATens 2 0 0 0 4 0 AnsVarR -> ATens 2 0 0 0 4 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
0,Int
1) (ATens 2 0 0 0 4 0 AnsVarR -> ATens 2 0 0 0 4 0 AnsVarR)
-> ATens 2 0 0 0 4 0 AnsVarR -> ATens 2 0 0 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 2 0 0 0 4 0 AnsVarR -> ATens 2 0 0 0 4 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
0,Int
2) ATens 2 0 0 0 4 0 AnsVarR
block1

ansatzABI :: ATens 2 0 1 0 0 0 AnsVarR -> ATens 2 0 1 0 2 0 AnsVarR
ansatzABI :: ATens 2 0 1 0 0 0 AnsVarR -> ATens 2 0 1 0 2 0 AnsVarR
ansatzABI ATens 2 0 1 0 0 0 AnsVarR
ans10_2 = ATens 2 0 1 0 2 0 AnsVarR
block1 ATens 2 0 1 0 2 0 AnsVarR
-> ATens 2 0 1 0 2 0 AnsVarR -> ATens 2 0 1 0 2 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 1 0 2 0 AnsVarR
block2
    where
        block1 :: ATens 2 0 1 0 2 0 AnsVarR
block1 = (Int, Int)
-> ATens 2 0 1 0 2 0 AnsVarR -> ATens 2 0 1 0 2 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
0,Int
1) (ATens 2 0 1 0 2 0 AnsVarR -> ATens 2 0 1 0 2 0 AnsVarR)
-> ATens 2 0 1 0 2 0 AnsVarR -> ATens 2 0 1 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1) (0 + 1) Ind20 (Tensor2 1 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 2 0 1 0 2 0 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (2 + 1) (0 + 1) Ind20 (Tensor2 1 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
 -> ATens 2 0 1 0 2 0 AnsVarR)
-> AbsTensor2
     (2 + 1) (0 + 1) Ind20 (Tensor2 1 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 2 0 1 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     3 1 (1 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
-> AbsTensor4 3 1 1 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   3 1 (1 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
 -> AbsTensor4 3 1 1 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> AbsTensor4
     3 1 (1 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
-> AbsTensor4 3 1 1 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 3 1 2 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 3 1 2 1 2 0 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
1,Int
0) (AbsTensor6 3 1 2 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 3 1 2 1 2 0 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 3 1 2 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 3 1 2 1 2 0 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 1 0 0 0 AnsVarR
ans10_2 ATens 2 0 1 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 1 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interEqn3 Tensor
  3
  Ind20
  (Tensor
     1
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        3
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA
        block2 :: ATens 2 0 1 0 2 0 AnsVarR
block2 = (Int, Int)
-> ATens 2 0 1 0 2 0 AnsVarR -> ATens 2 0 1 0 2 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
0,Int
1) (ATens 2 0 1 0 2 0 AnsVarR -> ATens 2 0 1 0 2 0 AnsVarR)
-> ATens 2 0 1 0 2 0 AnsVarR -> ATens 2 0 1 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 2 0 1 0 2 0 AnsVarR -> ATens 2 0 1 0 2 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
0,Int
1) (ATens 2 0 1 0 2 0 AnsVarR -> ATens 2 0 1 0 2 0 AnsVarR)
-> ATens 2 0 1 0 2 0 AnsVarR -> ATens 2 0 1 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1) (0 + 1) Ind20 (Tensor2 1 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 2 0 1 0 2 0 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (2 + 1) (0 + 1) Ind20 (Tensor2 1 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
 -> ATens 2 0 1 0 2 0 AnsVarR)
-> AbsTensor2
     (2 + 1) (0 + 1) Ind20 (Tensor2 1 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 2 0 1 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 3 1 1 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor4 3 1 1 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
1,Int
0) (AbsTensor6 3 1 1 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor4 3 1 1 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> AbsTensor6 3 1 1 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor4 3 1 1 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
forall a b. (a -> b) -> a -> b
$ ATens 2 0 1 0 0 0 AnsVarR
ans10_2 ATens 2 0 1 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 1 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea Tensor
  3
  Ind20
  (Tensor
     1
     Ind20
     (Tensor
        1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        3
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA

ansatzAIBJ :: ATens 2 0 2 0 0 0 AnsVarR -> ATens 2 0 2 0 2 0 AnsVarR
ansatzAIBJ :: ATens 2 0 2 0 0 0 AnsVarR -> ATens 2 0 2 0 2 0 AnsVarR
ansatzAIBJ ATens 2 0 2 0 0 0 AnsVarR
ans12_1 = ATens 2 0 2 0 2 0 AnsVarR
block1 ATens 2 0 2 0 2 0 AnsVarR
-> ATens 2 0 2 0 2 0 AnsVarR -> ATens 2 0 2 0 2 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 2 0 2 0 AnsVarR
block2
    where
        block1 :: ATens 2 0 2 0 2 0 AnsVarR
block1 = (Int, Int)
-> ATens 2 0 2 0 2 0 AnsVarR -> ATens 2 0 2 0 2 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
0,Int
1) (ATens 2 0 2 0 2 0 AnsVarR -> ATens 2 0 2 0 2 0 AnsVarR)
-> ATens 2 0 2 0 2 0 AnsVarR -> ATens 2 0 2 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1) (0 + 1) Ind20 (Tensor2 2 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 2 0 2 0 2 0 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (2 + 1) (0 + 1) Ind20 (Tensor2 2 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
 -> ATens 2 0 2 0 2 0 AnsVarR)
-> AbsTensor2
     (2 + 1) (0 + 1) Ind20 (Tensor2 2 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 2 0 2 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     3 1 (2 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
-> AbsTensor4 3 1 2 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   3 1 (2 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
 -> AbsTensor4 3 1 2 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> AbsTensor4
     3 1 (2 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
-> AbsTensor4 3 1 2 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 3 1 3 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 3 1 3 1 2 0 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
1,Int
0) (AbsTensor6 3 1 3 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 3 1 3 1 2 0 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 3 1 3 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 3 1 3 1 2 0 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 2 0 0 0 AnsVarR
ans12_1 ATens 2 0 2 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 2 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interEqn3 Tensor
  3
  Ind20
  (Tensor
     1
     Ind20
     (Tensor
        3 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        3
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              3 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA
        block2 :: ATens 2 0 2 0 2 0 AnsVarR
block2 = (Int, Int)
-> ATens 2 0 2 0 2 0 AnsVarR -> ATens 2 0 2 0 2 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
0,Int
1) (ATens 2 0 2 0 2 0 AnsVarR -> ATens 2 0 2 0 2 0 AnsVarR)
-> ATens 2 0 2 0 2 0 AnsVarR -> ATens 2 0 2 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 2 0 2 0 2 0 AnsVarR -> ATens 2 0 2 0 2 0 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor3 n1 n2 n3 k1 k2 v -> AbsTensor3 n1 n2 n3 k1 k2 v
tensorTrans3 (Int
0,Int
1) ATens 2 0 2 0 2 0 AnsVarR
block1

ansatzABC :: ATens 3 0 0 0 0 0 AnsVarR -> ATens 3 0 0 0 2 0 AnsVarR
ansatzABC :: ATens 3 0 0 0 0 0 AnsVarR -> ATens 3 0 0 0 2 0 AnsVarR
ansatzABC ATens 3 0 0 0 0 0 AnsVarR
ans12 = ATens 3 0 0 0 2 0 AnsVarR
block1 ATens 3 0 0 0 2 0 AnsVarR
-> ATens 3 0 0 0 2 0 AnsVarR -> ATens 3 0 0 0 2 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 0 0 2 0 AnsVarR
block2 ATens 3 0 0 0 2 0 AnsVarR
-> ATens 3 0 0 0 2 0 AnsVarR -> ATens 3 0 0 0 2 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 0 0 2 0 AnsVarR
block3
    where
        block1 :: ATens 3 0 0 0 2 0 AnsVarR
block1 = (Int, Int)
-> ATens 3 0 0 0 2 0 AnsVarR -> ATens 3 0 0 0 2 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
0,Int
1) (ATens 3 0 0 0 2 0 AnsVarR -> ATens 3 0 0 0 2 0 AnsVarR)
-> ATens 3 0 0 0 2 0 AnsVarR -> ATens 3 0 0 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 3 0 0 0 2 0 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (3 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
 -> ATens 3 0 0 0 2 0 AnsVarR)
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 3 0 0 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 4 1 0 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 4 1 0 0 2 0 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
1,Int
0) (AbsTensor6 4 1 0 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 4 1 0 0 2 0 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 4 1 0 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 4 1 0 0 2 0 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 3 0 0 0 0 0 AnsVarR
ans12 ATens 3 0 0 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 0 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea Tensor
  4
  Ind20
  (Tensor
     1
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        4
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA
        block2 :: ATens 3 0 0 0 2 0 AnsVarR
block2 = (Int, Int)
-> ATens 3 0 0 0 2 0 AnsVarR -> ATens 3 0 0 0 2 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
1,Int
2) ATens 3 0 0 0 2 0 AnsVarR
block1
        block3 :: ATens 3 0 0 0 2 0 AnsVarR
block3 = (Int, Int)
-> ATens 3 0 0 0 2 0 AnsVarR -> ATens 3 0 0 0 2 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
0,Int
2) ATens 3 0 0 0 2 0 AnsVarR
block1

ansatzABbCc :: ATens 3 0 0 0 2 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR
ansatzABbCc :: ATens 3 0 0 0 2 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR
ansatzABbCc ATens 3 0 0 0 2 0 AnsVarR
ans14_1 = ATens 3 0 0 0 4 0 AnsVarR
block1 ATens 3 0 0 0 4 0 AnsVarR
-> ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 0 0 4 0 AnsVarR
block2 ATens 3 0 0 0 4 0 AnsVarR
-> ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 0 0 4 0 AnsVarR
block3
    where
        block1 :: ATens 3 0 0 0 4 0 AnsVarR
block1 = (Int, Int)
-> ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
1,Int
3) (ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR)
-> ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
-> ATens 3 0 0 0 4 0 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (3 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
 -> ATens 3 0 0 0 4 0 AnsVarR)
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
-> ATens 3 0 0 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 4 1 0 0 (4 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 4 1 0 0 4 0 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
0,Int
0) (AbsTensor6 4 1 0 0 (4 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 4 1 0 0 4 0 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 4 1 0 0 (4 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 4 1 0 0 4 0 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 4 1 0 0 (5 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 4 1 0 0 5 1 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
4,Int
0) (AbsTensor6 4 1 0 0 (5 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 4 1 0 0 5 1 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 4 1 0 0 (5 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 4 1 0 0 5 1 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 3 0 0 0 2 0 AnsVarR
ans14_1 ATens 3 0 0 0 2 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 0 0 2 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational))))
interEqn2 Tensor
  4
  Ind20
  (Tensor
     1
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 4 Ind3 (Tensor 2 Ind3 AnsVarR)))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        4
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 4 Ind3 (Tensor 2 Ind3 AnsVarR))))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA
        block2 :: ATens 3 0 0 0 4 0 AnsVarR
block2 = (Int, Int)
-> ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
1,Int
2) (ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR)
-> ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
0,Int
2) ATens 3 0 0 0 4 0 AnsVarR
block1
        block3 :: ATens 3 0 0 0 4 0 AnsVarR
block3 = (Int, Int)
-> ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
1,Int
2) (ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR)
-> ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
0,Int
1) (ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR)
-> ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
1,Int
2) (ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR)
-> ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
2,Int
3) (ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR)
-> ATens 3 0 0 0 4 0 AnsVarR -> ATens 3 0 0 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
-> ATens 3 0 0 0 4 0 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (3 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
 -> ATens 3 0 0 0 4 0 AnsVarR)
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
-> ATens 3 0 0 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 4 1 0 0 (4 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 4 1 0 0 4 0 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
3,Int
0) (AbsTensor6 4 1 0 0 (4 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 4 1 0 0 4 0 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 4 1 0 0 (4 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 4 1 0 0 4 0 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 3 0 0 0 2 0 AnsVarR
ans14_1 ATens 3 0 0 0 2 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 0 0 2 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea Tensor
  4
  Ind20
  (Tensor
     1
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        4
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA

ansatzABCI :: ATens 3 0 1 0 0 0 AnsVarR -> ATens 3 0 1 0 2 0 AnsVarR
ansatzABCI :: ATens 3 0 1 0 0 0 AnsVarR -> ATens 3 0 1 0 2 0 AnsVarR
ansatzABCI ATens 3 0 1 0 0 0 AnsVarR
ans14_2 = ATens 3 0 1 0 2 0 AnsVarR
block1 ATens 3 0 1 0 2 0 AnsVarR
-> ATens 3 0 1 0 2 0 AnsVarR -> ATens 3 0 1 0 2 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 1 0 2 0 AnsVarR
block2
    where
        block1 :: ATens 3 0 1 0 2 0 AnsVarR
block1 = (Int, Int)
-> ATens 3 0 1 0 2 0 AnsVarR -> ATens 3 0 1 0 2 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
symATens1 (Int
0,Int
2) (ATens 3 0 1 0 2 0 AnsVarR -> ATens 3 0 1 0 2 0 AnsVarR)
-> ATens 3 0 1 0 2 0 AnsVarR -> ATens 3 0 1 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 1 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 3 0 1 0 2 0 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (3 + 1) (0 + 1) Ind20 (Tensor2 1 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
 -> ATens 3 0 1 0 2 0 AnsVarR)
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 1 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 3 0 1 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 3 0 1 0 0 0 AnsVarR
ans14_2 ATens 3 0 1 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 1 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* (Int, Int)
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
0,Int
1) ((Int, Int)
-> AbsTensor6
     1 1 0 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 (SField Rational)
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
1,Int
0) (AbsTensor6
   1 1 0 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 (SField Rational)
 -> Tensor
      1
      Ind20
      (Tensor
         1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
-> AbsTensor6
     1 1 0 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 (SField Rational)
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
forall a b. (a -> b) -> a -> b
$ Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA)
        block2 :: ATens 3 0 1 0 2 0 AnsVarR
block2 = (Int, Int)
-> ATens 3 0 1 0 2 0 AnsVarR -> ATens 3 0 1 0 2 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
1,Int
2) (ATens 3 0 1 0 2 0 AnsVarR -> ATens 3 0 1 0 2 0 AnsVarR)
-> ATens 3 0 1 0 2 0 AnsVarR -> ATens 3 0 1 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     3 0 (1 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
-> ATens 3 0 1 0 2 0 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   3 0 (1 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
 -> ATens 3 0 1 0 2 0 AnsVarR)
-> AbsTensor4
     3 0 (1 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
-> ATens 3 0 1 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 2 1 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> AbsTensor2
     3 0 Ind20 (Tensor2 2 1 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
2,Int
0) (AbsTensor2
   (3 + 1) (0 + 1) Ind20 (Tensor2 2 1 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
 -> AbsTensor2
      3 0 Ind20 (Tensor2 2 1 Ind9 (Tensor2 2 0 Ind3 AnsVarR)))
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 2 1 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> AbsTensor2
     3 0 Ind20 (Tensor2 2 1 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
forall a b. (a -> b) -> a -> b
$ ATens 3 0 1 0 0 0 AnsVarR
ans14_2 ATens 3 0 1 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 1 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* (Int, Int)
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
0,Int
1) ((Int, Int)
-> AbsTensor6
     1 1 1 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 (SField Rational)
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
1,Int
0) (AbsTensor6
   1 1 1 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 (SField Rational)
 -> Tensor
      1
      Ind20
      (Tensor
         1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
-> AbsTensor6
     1 1 1 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 (SField Rational)
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
forall a b. (a -> b) -> a -> b
$ Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interEqn3 Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA)

ansatzAaBbCI :: ATens 3 0 1 0 2 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR
ansatzAaBbCI :: ATens 3 0 1 0 2 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR
ansatzAaBbCI ATens 3 0 1 0 2 0 AnsVarR
ans16_1 = ATens 3 0 1 0 4 0 AnsVarR
block1 ATens 3 0 1 0 4 0 AnsVarR
-> ATens 3 0 1 0 4 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 1 0 4 0 AnsVarR
block2 ATens 3 0 1 0 4 0 AnsVarR
-> ATens 3 0 1 0 4 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 1 0 4 0 AnsVarR
block3
    where
        block1 :: ATens 3 0 1 0 4 0 AnsVarR
block1 = (Int, Int)
-> ATens 3 0 1 0 4 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
1,Int
3) (ATens 3 0 1 0 4 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR)
-> ATens 3 0 1 0 4 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 1 0 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
-> ATens 3 0 1 0 4 0 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (3 + 1) (0 + 1) Ind20 (Tensor2 1 0 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
 -> ATens 3 0 1 0 4 0 AnsVarR)
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 1 0 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
-> ATens 3 0 1 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 4 1 1 0 (4 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 4 1 1 0 4 0 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
0,Int
0) (AbsTensor6 4 1 1 0 (4 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 4 1 1 0 4 0 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 4 1 1 0 (4 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 4 1 1 0 4 0 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 4 1 1 0 (5 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 4 1 1 0 5 1 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
4,Int
0) (AbsTensor6 4 1 1 0 (5 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 4 1 1 0 5 1 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 4 1 1 0 (5 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 4 1 1 0 5 1 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 3 0 1 0 2 0 AnsVarR
ans16_1 ATens 3 0 1 0 2 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 1 0 2 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational))))
interEqn2 Tensor
  4
  Ind20
  (Tensor
     1
     Ind20
     (Tensor
        1 Ind9 (Tensor 0 Ind9 (Tensor 4 Ind3 (Tensor 2 Ind3 AnsVarR)))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        4
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              1 Ind9 (Tensor 0 Ind9 (Tensor 4 Ind3 (Tensor 2 Ind3 AnsVarR))))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA
        block2 :: ATens 3 0 1 0 4 0 AnsVarR
block2 = (Int, Int)
-> ATens 3 0 1 0 4 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
0,Int
2) (ATens 3 0 1 0 4 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR)
-> ATens 3 0 1 0 4 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 3 0 1 0 4 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
0,Int
2) ATens 3 0 1 0 4 0 AnsVarR
block1
        block3 :: ATens 3 0 1 0 4 0 AnsVarR
block3 = (Int, Int)
-> ATens 3 0 1 0 4 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
1,Int
2) (ATens 3 0 1 0 4 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR)
-> ATens 3 0 1 0 4 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 3 0 1 0 4 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
1,Int
2) (ATens 3 0 1 0 4 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR)
-> ATens 3 0 1 0 4 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 3 0 1 0 4 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
2,Int
3) (ATens 3 0 1 0 4 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR)
-> ATens 3 0 1 0 4 0 AnsVarR -> ATens 3 0 1 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     3 0 (1 + 1) (0 + 1) Ind20 Ind9 (Tensor2 4 0 Ind3 AnsVarR)
-> ATens 3 0 1 0 4 0 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   3 0 (1 + 1) (0 + 1) Ind20 Ind9 (Tensor2 4 0 Ind3 AnsVarR)
 -> ATens 3 0 1 0 4 0 AnsVarR)
-> AbsTensor4
     3 0 (1 + 1) (0 + 1) Ind20 Ind9 (Tensor2 4 0 Ind3 AnsVarR)
-> ATens 3 0 1 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 2 1 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
-> AbsTensor2
     3 0 Ind20 (Tensor2 2 1 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
2,Int
0) (AbsTensor2
   (3 + 1) (0 + 1) Ind20 (Tensor2 2 1 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
 -> AbsTensor2
      3 0 Ind20 (Tensor2 2 1 Ind9 (Tensor2 4 0 Ind3 AnsVarR)))
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 2 1 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
-> AbsTensor2
     3 0 Ind20 (Tensor2 2 1 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 4 1 2 1 (4 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 4 1 2 1 4 0 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
4,Int
0) (AbsTensor6 4 1 2 1 (4 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 4 1 2 1 4 0 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 4 1 2 1 (4 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 4 1 2 1 4 0 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 3 0 1 0 2 0 AnsVarR
ans16_1 ATens 3 0 1 0 2 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 1 0 2 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interEqn3 Tensor
  4
  Ind20
  (Tensor
     1
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        4
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              2 Ind9 (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA

ansatzABICJ :: ATens 3 0 2 0 0 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR
ansatzABICJ :: ATens 3 0 2 0 0 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR
ansatzABICJ ATens 3 0 2 0 0 0 AnsVarR
ans16_2 = ATens 3 0 2 0 2 0 AnsVarR
block1 ATens 3 0 2 0 2 0 AnsVarR
-> ATens 3 0 2 0 2 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 2 0 2 0 AnsVarR
block2 ATens 3 0 2 0 2 0 AnsVarR
-> ATens 3 0 2 0 2 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 2 0 2 0 AnsVarR
block3
    where
        block1 :: ATens 3 0 2 0 2 0 AnsVarR
block1 = (Int, Int)
-> ATens 3 0 2 0 2 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
0,Int
1) (ATens 3 0 2 0 2 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR)
-> ATens 3 0 2 0 2 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 2 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 3 0 2 0 2 0 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (3 + 1) (0 + 1) Ind20 (Tensor2 2 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
 -> ATens 3 0 2 0 2 0 AnsVarR)
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 2 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 3 0 2 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     4 1 (2 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
-> AbsTensor4 4 1 2 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   4 1 (2 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
 -> AbsTensor4 4 1 2 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> AbsTensor4
     4 1 (2 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
-> AbsTensor4 4 1 2 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 4 1 3 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 4 1 3 1 2 0 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
1,Int
0) (AbsTensor6 4 1 3 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 4 1 3 1 2 0 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 4 1 3 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 4 1 3 1 2 0 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 3 0 2 0 0 0 AnsVarR
ans16_2 ATens 3 0 2 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 2 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interEqn3 Tensor
  4
  Ind20
  (Tensor
     1
     Ind20
     (Tensor
        3 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        4
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              3 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA
        block2 :: ATens 3 0 2 0 2 0 AnsVarR
block2 = (Int, Int)
-> ATens 3 0 2 0 2 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
1,Int
2) (ATens 3 0 2 0 2 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR)
-> ATens 3 0 2 0 2 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 3 0 2 0 2 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor3 n1 n2 n3 k1 k2 v -> AbsTensor3 n1 n2 n3 k1 k2 v
tensorTrans3 (Int
0,Int
1) ATens 3 0 2 0 2 0 AnsVarR
block1
        block3 :: ATens 3 0 2 0 2 0 AnsVarR
block3 = (Int, Int)
-> ATens 3 0 2 0 2 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor3 n1 n2 n3 k1 k2 v -> AbsTensor3 n1 n2 n3 k1 k2 v
tensorTrans3 (Int
0,Int
1) (ATens 3 0 2 0 2 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR)
-> ATens 3 0 2 0 2 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 3 0 2 0 2 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
0,Int
2) (ATens 3 0 2 0 2 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR)
-> ATens 3 0 2 0 2 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 3 0 2 0 2 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
0,Int
1) (ATens 3 0 2 0 2 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR)
-> ATens 3 0 2 0 2 0 AnsVarR -> ATens 3 0 2 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 2 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 3 0 2 0 2 0 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (3 + 1) (0 + 1) Ind20 (Tensor2 2 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
 -> ATens 3 0 2 0 2 0 AnsVarR)
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 2 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 3 0 2 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 4 1 2 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor4 4 1 2 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
1,Int
0) (AbsTensor6 4 1 2 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor4 4 1 2 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> AbsTensor6 4 1 2 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor4 4 1 2 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
forall a b. (a -> b) -> a -> b
$ ATens 3 0 2 0 0 0 AnsVarR
ans16_2 ATens 3 0 2 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 2 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea Tensor
  4
  Ind20
  (Tensor
     1
     Ind20
     (Tensor
        2 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        4
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              2 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA

ansatzAIBJCK :: ATens 3 0 3 0 0 0 AnsVarR -> ATens 3 0 3 0 2 0 AnsVarR
ansatzAIBJCK :: ATens 3 0 3 0 0 0 AnsVarR -> ATens 3 0 3 0 2 0 AnsVarR
ansatzAIBJCK ATens 3 0 3 0 0 0 AnsVarR
ans18 = ATens 3 0 3 0 2 0 AnsVarR
block1 ATens 3 0 3 0 2 0 AnsVarR
-> ATens 3 0 3 0 2 0 AnsVarR -> ATens 3 0 3 0 2 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 3 0 2 0 AnsVarR
block2 ATens 3 0 3 0 2 0 AnsVarR
-> ATens 3 0 3 0 2 0 AnsVarR -> ATens 3 0 3 0 2 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 3 0 2 0 AnsVarR
block3
    where
        block1 :: ATens 3 0 3 0 2 0 AnsVarR
block1 = (Int, Int)
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 3 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 3 0 3 0 2 0 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (3 + 1) (0 + 1) Ind20 (Tensor2 3 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
 -> ATens 3 0 3 0 2 0 AnsVarR)
-> AbsTensor2
     (3 + 1) (0 + 1) Ind20 (Tensor2 3 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 3 0 3 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     4 1 (3 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
-> AbsTensor4 4 1 3 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   4 1 (3 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
 -> AbsTensor4 4 1 3 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> AbsTensor4
     4 1 (3 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
-> AbsTensor4 4 1 3 0 Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
forall a b. (a -> b) -> a -> b
$ ATens 3 0 3 0 0 0 AnsVarR
ans18 ATens 3 0 3 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 3 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
forall v k1 k2 k3 (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TAdd v, TIndex k1, TIndex k2, TIndex k3) =>
AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
removeZeros6 ((Int, Int)
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
0,Int
1) (Tensor
   1
   Ind20
   (Tensor
      1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
 -> Tensor
      1
      Ind20
      (Tensor
         1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6
     1 1 1 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 (SField Rational)
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
1,Int
0) (AbsTensor6
   1 1 1 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 (SField Rational)
 -> Tensor
      1
      Ind20
      (Tensor
         1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
-> AbsTensor6
     1 1 1 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 (SField Rational)
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
forall a b. (a -> b) -> a -> b
$ Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interEqn3 Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA)
        block2 :: ATens 3 0 3 0 2 0 AnsVarR
block2 = (Int, Int)
-> ATens 3 0 3 0 2 0 AnsVarR -> ATens 3 0 3 0 2 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
0,Int
2) (ATens 3 0 3 0 2 0 AnsVarR -> ATens 3 0 3 0 2 0 AnsVarR)
-> ATens 3 0 3 0 2 0 AnsVarR -> ATens 3 0 3 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 3 0 3 0 2 0 AnsVarR -> ATens 3 0 3 0 2 0 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor3 n1 n2 n3 k1 k2 v -> AbsTensor3 n1 n2 n3 k1 k2 v
tensorTrans3 (Int
0,Int
2) ATens 3 0 3 0 2 0 AnsVarR
block1
        block3 :: ATens 3 0 3 0 2 0 AnsVarR
block3 = (Int, Int)
-> ATens 3 0 3 0 2 0 AnsVarR -> ATens 3 0 3 0 2 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
1,Int
2) (ATens 3 0 3 0 2 0 AnsVarR -> ATens 3 0 3 0 2 0 AnsVarR)
-> ATens 3 0 3 0 2 0 AnsVarR -> ATens 3 0 3 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 3 0 3 0 2 0 AnsVarR -> ATens 3 0 3 0 2 0 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor3 n1 n2 n3 k1 k2 v -> AbsTensor3 n1 n2 n3 k1 k2 v
tensorTrans3 (Int
1,Int
2) ATens 3 0 3 0 2 0 AnsVarR
block1

ansatzABCD :: ATens 4 0 0 0 0 0 AnsVarR -> ATens 4 0 0 0 2 0 AnsVarR
ansatzABCD :: ATens 4 0 0 0 0 0 AnsVarR -> ATens 4 0 0 0 2 0 AnsVarR
ansatzABCD ATens 4 0 0 0 0 0 AnsVarR
ans16 = ATens 4 0 0 0 2 0 AnsVarR
block1 ATens 4 0 0 0 2 0 AnsVarR
-> ATens 4 0 0 0 2 0 AnsVarR -> ATens 4 0 0 0 2 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 4 0 0 0 2 0 AnsVarR
block2 ATens 4 0 0 0 2 0 AnsVarR
-> ATens 4 0 0 0 2 0 AnsVarR -> ATens 4 0 0 0 2 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 4 0 0 0 2 0 AnsVarR
block3 ATens 4 0 0 0 2 0 AnsVarR
-> ATens 4 0 0 0 2 0 AnsVarR -> ATens 4 0 0 0 2 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 4 0 0 0 2 0 AnsVarR
block4
    where
        block1 :: ATens 4 0 0 0 2 0 AnsVarR
block1 = (Int, Int)
-> ATens 4 0 0 0 2 0 AnsVarR -> ATens 4 0 0 0 2 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
0,Int
1) (ATens 4 0 0 0 2 0 AnsVarR -> ATens 4 0 0 0 2 0 AnsVarR)
-> ATens 4 0 0 0 2 0 AnsVarR -> ATens 4 0 0 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (4 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 4 0 0 0 2 0 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (4 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
 -> ATens 4 0 0 0 2 0 AnsVarR)
-> AbsTensor2
     (4 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 4 0 0 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 5 1 0 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 5 1 0 0 2 0 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
1,Int
0) (AbsTensor6 5 1 0 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 5 1 0 0 2 0 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 5 1 0 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 5 1 0 0 2 0 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 4 0 0 0 0 0 AnsVarR
ans16 ATens 4 0 0 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 4 0 0 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea Tensor
  5
  Ind20
  (Tensor
     1
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        5
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA
        block2 :: ATens 4 0 0 0 2 0 AnsVarR
block2 = (Int, Int)
-> ATens 4 0 0 0 2 0 AnsVarR -> ATens 4 0 0 0 2 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
0,Int
3) ATens 4 0 0 0 2 0 AnsVarR
block1
        block3 :: ATens 4 0 0 0 2 0 AnsVarR
block3 = (Int, Int)
-> ATens 4 0 0 0 2 0 AnsVarR -> ATens 4 0 0 0 2 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
1,Int
3) ATens 4 0 0 0 2 0 AnsVarR
block1
        block4 :: ATens 4 0 0 0 2 0 AnsVarR
block4 = (Int, Int)
-> ATens 4 0 0 0 2 0 AnsVarR -> ATens 4 0 0 0 2 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
2,Int
3) ATens 4 0 0 0 2 0 AnsVarR
block1

ansatzABCDJ :: ATens 4 0 1 0 0 0 AnsVarR -> ATens 4 0 1 0 2 0 AnsVarR
ansatzABCDJ :: ATens 4 0 1 0 0 0 AnsVarR -> ATens 4 0 1 0 2 0 AnsVarR
ansatzABCDJ ATens 4 0 1 0 0 0 AnsVarR
ans18_2 = ATens 4 0 1 0 2 0 AnsVarR
block1 ATens 4 0 1 0 2 0 AnsVarR
-> ATens 4 0 1 0 2 0 AnsVarR -> ATens 4 0 1 0 2 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 4 0 1 0 2 0 AnsVarR
block2 ATens 4 0 1 0 2 0 AnsVarR
-> ATens 4 0 1 0 2 0 AnsVarR -> ATens 4 0 1 0 2 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 4 0 1 0 2 0 AnsVarR
block3 ATens 4 0 1 0 2 0 AnsVarR
-> ATens 4 0 1 0 2 0 AnsVarR -> ATens 4 0 1 0 2 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 4 0 1 0 2 0 AnsVarR
block4
    where
        block1 :: ATens 4 0 1 0 2 0 AnsVarR
block1 = (Int, Int)
-> ATens 4 0 1 0 2 0 AnsVarR -> ATens 4 0 1 0 2 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
0,Int
1) (ATens 4 0 1 0 2 0 AnsVarR -> ATens 4 0 1 0 2 0 AnsVarR)
-> ATens 4 0 1 0 2 0 AnsVarR -> ATens 4 0 1 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (4 + 1) (0 + 1) Ind20 (Tensor2 1 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 4 0 1 0 2 0 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (4 + 1) (0 + 1) Ind20 (Tensor2 1 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
 -> ATens 4 0 1 0 2 0 AnsVarR)
-> AbsTensor2
     (4 + 1) (0 + 1) Ind20 (Tensor2 1 0 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> ATens 4 0 1 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 5 1 1 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 5 1 1 0 2 0 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
1,Int
0) (AbsTensor6 5 1 1 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 5 1 1 0 2 0 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 5 1 1 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 5 1 1 0 2 0 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 4 0 1 0 0 0 AnsVarR
ans18_2 ATens 4 0 1 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 4 0 1 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea Tensor
  5
  Ind20
  (Tensor
     1
     Ind20
     (Tensor
        1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        5
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA
        block2 :: ATens 4 0 1 0 2 0 AnsVarR
block2 = (Int, Int)
-> ATens 4 0 1 0 2 0 AnsVarR -> ATens 4 0 1 0 2 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
0,Int
3) ATens 4 0 1 0 2 0 AnsVarR
block1
        block3 :: ATens 4 0 1 0 2 0 AnsVarR
block3 = (Int, Int)
-> ATens 4 0 1 0 2 0 AnsVarR -> ATens 4 0 1 0 2 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
1,Int
3) ATens 4 0 1 0 2 0 AnsVarR
block1
        block4 :: ATens 4 0 1 0 2 0 AnsVarR
block4 = (Int, Int)
-> ATens 4 0 1 0 2 0 AnsVarR -> ATens 4 0 1 0 2 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
2,Int
3) (ATens 4 0 1 0 2 0 AnsVarR -> ATens 4 0 1 0 2 0 AnsVarR)
-> ATens 4 0 1 0 2 0 AnsVarR -> ATens 4 0 1 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 4 0 1 0 2 0 AnsVarR -> ATens 4 0 1 0 2 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
0,Int
1) (ATens 4 0 1 0 2 0 AnsVarR -> ATens 4 0 1 0 2 0 AnsVarR)
-> ATens 4 0 1 0 2 0 AnsVarR -> ATens 4 0 1 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     4 0 (1 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
-> ATens 4 0 1 0 2 0 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   4 0 (1 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
 -> ATens 4 0 1 0 2 0 AnsVarR)
-> AbsTensor4
     4 0 (1 + 1) (0 + 1) Ind20 Ind9 (Tensor2 2 0 Ind3 AnsVarR)
-> ATens 4 0 1 0 2 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (4 + 1) (0 + 1) Ind20 (Tensor2 2 1 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> AbsTensor2
     4 0 Ind20 (Tensor2 2 1 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
3,Int
0) (AbsTensor2
   (4 + 1) (0 + 1) Ind20 (Tensor2 2 1 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
 -> AbsTensor2
      4 0 Ind20 (Tensor2 2 1 Ind9 (Tensor2 2 0 Ind3 AnsVarR)))
-> AbsTensor2
     (4 + 1) (0 + 1) Ind20 (Tensor2 2 1 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
-> AbsTensor2
     4 0 Ind20 (Tensor2 2 1 Ind9 (Tensor2 2 0 Ind3 AnsVarR))
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 5 1 2 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 5 1 2 1 2 0 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
1,Int
0) (AbsTensor6 5 1 2 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 5 1 2 1 2 0 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 5 1 2 1 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 5 1 2 1 2 0 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 4 0 1 0 0 0 AnsVarR
ans18_2 ATens 4 0 1 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 4 0 1 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interEqn3 Tensor
  5
  Ind20
  (Tensor
     1
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        5
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA

ansatzABCcDd :: ATens 4 0 0 0 2 0 AnsVarR -> ATens 4 0 0 0 4 0 AnsVarR
ansatzABCcDd :: ATens 4 0 0 0 2 0 AnsVarR -> ATens 4 0 0 0 4 0 AnsVarR
ansatzABCcDd ATens 4 0 0 0 2 0 AnsVarR
ans18_3 = ATens 4 0 0 0 4 0 AnsVarR
block1 ATens 4 0 0 0 4 0 AnsVarR
-> ATens 4 0 0 0 4 0 AnsVarR -> ATens 4 0 0 0 4 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 4 0 0 0 4 0 AnsVarR
block2 ATens 4 0 0 0 4 0 AnsVarR
-> ATens 4 0 0 0 4 0 AnsVarR -> ATens 4 0 0 0 4 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 4 0 0 0 4 0 AnsVarR
block3 ATens 4 0 0 0 4 0 AnsVarR
-> ATens 4 0 0 0 4 0 AnsVarR -> ATens 4 0 0 0 4 0 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 4 0 0 0 4 0 AnsVarR
block4
    where
        block1 :: ATens 4 0 0 0 4 0 AnsVarR
block1 = (Int, Int)
-> AbsTensor2
     (4 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
-> ATens 4 0 0 0 4 0 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (4 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
 -> ATens 4 0 0 0 4 0 AnsVarR)
-> AbsTensor2
     (4 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 4 0 Ind3 AnsVarR))
-> ATens 4 0 0 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 4 0 0 0 2 0 AnsVarR
ans18_3 ATens 4 0 0 0 2 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (ATens 4 0 0 0 2 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* (Int, Int)
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
0,Int
1) ((Int, Int)
-> AbsTensor6
     1 1 0 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 (SField Rational)
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
1,Int
0) (AbsTensor6
   1 1 0 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 (SField Rational)
 -> Tensor
      1
      Ind20
      (Tensor
         1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
-> AbsTensor6
     1 1 0 0 (2 + 1) (0 + 1) Ind20 Ind9 Ind3 (SField Rational)
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
forall a b. (a -> b) -> a -> b
$ Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA)
        block2 :: ATens 4 0 0 0 4 0 AnsVarR
block2 = (Int, Int)
-> ATens 4 0 0 0 4 0 AnsVarR -> ATens 4 0 0 0 4 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
0,Int
3) ATens 4 0 0 0 4 0 AnsVarR
block1
        block3' :: ATens 4 0 0 0 4 0 AnsVarR
block3' = (Int, Int)
-> AbsTensor6 4 0 0 0 (4 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> ATens 4 0 0 0 4 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
0,Int
0) (AbsTensor6 4 0 0 0 (4 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> ATens 4 0 0 0 4 0 AnsVarR)
-> AbsTensor6 4 0 0 0 (4 + 1) (0 + 1) Ind20 Ind9 Ind3 AnsVarR
-> ATens 4 0 0 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (4 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 5 1 Ind3 AnsVarR))
-> AbsTensor2
     4 0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 5 1 Ind3 AnsVarR))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
2,Int
0) (AbsTensor2
   (4 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 5 1 Ind3 AnsVarR))
 -> AbsTensor2
      4 0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 5 1 Ind3 AnsVarR)))
-> AbsTensor2
     (4 + 1) (0 + 1) Ind20 (Tensor2 0 0 Ind9 (Tensor2 5 1 Ind3 AnsVarR))
-> AbsTensor2
     4 0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 5 1 Ind3 AnsVarR))
forall a b. (a -> b) -> a -> b
$ ATens 4 0 0 0 2 0 AnsVarR
ans18_3 ATens 4 0 0 0 2 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1
        Ind20
        (Tensor2
           0 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))))
-> TProd
     (ATens 4 0 0 0 2 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1
           Ind20
           (Tensor2
              0 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational))))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* (Int, Int)
-> Tensor
     1
     Ind20
     (Tensor
        1
        Ind20
        (Tensor2
           0 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))))
-> Tensor
     1
     Ind20
     (Tensor
        1
        Ind20
        (Tensor2
           0 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))))
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
aSymATens5 (Int
0,Int
2) ((Int, Int)
-> AbsTensor6
     1 1 0 0 (3 + 1) (1 + 1) Ind20 Ind9 Ind3 (SField Rational)
-> Tensor
     1
     Ind20
     (Tensor
        1
        Ind20
        (Tensor2
           0 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))))
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
2,Int
0) (AbsTensor6
   1 1 0 0 (3 + 1) (1 + 1) Ind20 Ind9 Ind3 (SField Rational)
 -> Tensor
      1
      Ind20
      (Tensor
         1
         Ind20
         (Tensor2
            0 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational))))))
-> AbsTensor6
     1 1 0 0 (3 + 1) (1 + 1) Ind20 Ind9 Ind3 (SField Rational)
-> Tensor
     1
     Ind20
     (Tensor
        1
        Ind20
        (Tensor2
           0 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))))
forall a b. (a -> b) -> a -> b
$ Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational))))
interEqn2 Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational))))
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational)))))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 0 Ind3 (SField Rational))))
invEtaA)
        block3 :: ATens 4 0 0 0 4 0 AnsVarR
block3 = [Int] -> ATens 4 0 0 0 4 0 AnsVarR -> ATens 4 0 0 0 4 0 AnsVarR
forall (n1 :: Nat) k1 v.
(KnownNat n1, TIndex k1, TAdd v) =>
[Int] -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
resortTens1 [Int
3,Int
0,Int
2,Int
1] (ATens 4 0 0 0 4 0 AnsVarR -> ATens 4 0 0 0 4 0 AnsVarR)
-> ATens 4 0 0 0 4 0 AnsVarR -> ATens 4 0 0 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ [Int] -> ATens 4 0 0 0 4 0 AnsVarR -> ATens 4 0 0 0 4 0 AnsVarR
forall (n5 :: Nat) k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat)
       (n4 :: Nat).
(KnownNat n5, TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
[Int]
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
resortTens5 [Int
1,Int
2,Int
0,Int
3] ATens 4 0 0 0 4 0 AnsVarR
block3'
        block4 :: ATens 4 0 0 0 4 0 AnsVarR
block4 = (Int, Int)
-> ATens 4 0 0 0 4 0 AnsVarR -> ATens 4 0 0 0 4 0 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
1,Int
2) (ATens 4 0 0 0 4 0 AnsVarR -> ATens 4 0 0 0 4 0 AnsVarR)
-> ATens 4 0 0 0 4 0 AnsVarR -> ATens 4 0 0 0 4 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 4 0 0 0 4 0 AnsVarR -> ATens 4 0 0 0 4 0 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
0,Int
1) ATens 4 0 0 0 4 0 AnsVarR
block3


--the mass sub graph, i.e no derivatives

--order 0

-- | The equation is given by: \(0 = a^A C_{An}^{Bm}N_B + a_0 \delta^m_n \).
eqn1 :: ATens 0 0 0 0 0 0 AnsVarR -> ATens 1 0 0 0 0 0 AnsVarR -> ATens 0 0 0 0 1 1 AnsVarR
eqn1 :: ATens 0 0 0 0 0 0 AnsVarR
-> ATens 1 0 0 0 0 0 AnsVarR -> ATens 0 0 0 0 1 1 AnsVarR
eqn1 ATens 0 0 0 0 0 0 AnsVarR
ans0 ATens 1 0 0 0 0 0 AnsVarR
ans4 = (Int, Int)
-> AbsTensor2
     (0 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 0 0 0 0 1 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (ATens 1 0 0 0 0 0 AnsVarR
ans4 ATens 1 0 0 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 1 0 0 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter) ATens 0 0 0 0 1 1 AnsVarR
-> ATens 0 0 0 0 1 1 AnsVarR -> ATens 0 0 0 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ (ATens 0 0 0 0 0 0 AnsVarR
ans0 ATens 0 0 0 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 0 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
delta3A)

--order 1

-- | The equation is given by: \( 0 = a^A C_{An}^{Bm} + 2 a^{AB}C_{An}^{Cm}N_C + a^B\delta^m_n \).
eqn1A :: ATens 1 0 0 0 0 0 AnsVarR -> ATens 2 0 0 0 0 0 AnsVarR -> ATens 1 0 0 0 1 1 AnsVarR
eqn1A :: ATens 1 0 0 0 0 0 AnsVarR
-> ATens 2 0 0 0 0 0 AnsVarR -> ATens 1 0 0 0 1 1 AnsVarR
eqn1A ATens 1 0 0 0 0 0 AnsVarR
ans4 ATens 2 0 0 0 0 0 AnsVarR
ans8 = ATens 1 0 0 0 1 1 AnsVarR
block1 ATens 1 0 0 0 1 1 AnsVarR
-> ATens 1 0 0 0 1 1 AnsVarR -> ATens 1 0 0 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 1 0 0 0 1 1 AnsVarR
block2 ATens 1 0 0 0 1 1 AnsVarR
-> ATens 1 0 0 0 1 1 AnsVarR -> ATens 1 0 0 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 1 0 0 0 1 1 AnsVarR
TProd
  (ATens 1 0 0 0 0 0 AnsVarR)
  (Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
block3
        where
            block1 :: ATens 1 0 0 0 1 1 AnsVarR
block1 = (Int, Int)
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 1 0 0 0 1 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (1 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 1 0 0 0 1 1 AnsVarR)
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 1 0 0 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 1 0 0 0 0 0 AnsVarR
ans4 ATens 1 0 0 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 1 0 0 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea
            block2 :: ATens 1 0 0 0 1 1 AnsVarR
block2 = (Int, Int)
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 1 0 0 0 1 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (1 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 1 0 0 0 1 1 AnsVarR)
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 1 0 0 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 0 0 AnsVarR
ans8 ATens 2 0 0 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter
            block3 :: TProd
  (ATens 1 0 0 0 0 0 AnsVarR)
  (Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
block3 = ATens 1 0 0 0 0 0 AnsVarR
ans4 ATens 1 0 0 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 1 0 0 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
delta3A

--order 2

-- | The equation is given by: \( 0 = 2 a^{AC}C_{An}^{Bm} + 2a^{AB}C_{An}^{Cm} + 6 a^{ABC}C_{An}^{Dm} N_D + 2a^{BC} \delta^m_n \)
eqn1AB :: ATens 2 0 0 0 0 0 AnsVarR -> ATens 3 0 0 0 0 0 AnsVarR -> ATens 2 0 0 0 1 1 AnsVarR
eqn1AB :: ATens 2 0 0 0 0 0 AnsVarR
-> ATens 3 0 0 0 0 0 AnsVarR -> ATens 2 0 0 0 1 1 AnsVarR
eqn1AB ATens 2 0 0 0 0 0 AnsVarR
ans8 ATens 3 0 0 0 0 0 AnsVarR
ans12 = ATens 2 0 0 0 1 1 AnsVarR
block1 ATens 2 0 0 0 1 1 AnsVarR
-> ATens 2 0 0 0 1 1 AnsVarR -> ATens 2 0 0 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 1 1 AnsVarR
block2 ATens 2 0 0 0 1 1 AnsVarR
-> ATens 2 0 0 0 1 1 AnsVarR -> ATens 2 0 0 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 1 1 AnsVarR
TProd
  (ATens 2 0 0 0 0 0 AnsVarR)
  (Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
block3
        where
            block1 :: ATens 2 0 0 0 1 1 AnsVarR
block1 = (Int, Int)
-> ATens 2 0 0 0 1 1 AnsVarR -> ATens 2 0 0 0 1 1 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
symATens1 (Int
0,Int
1) (ATens 2 0 0 0 1 1 AnsVarR -> ATens 2 0 0 0 1 1 AnsVarR)
-> ATens 2 0 0 0 1 1 AnsVarR -> ATens 2 0 0 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 1 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 0 0 1 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 0 0 AnsVarR
ans8 ATens 2 0 0 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea
            block2 :: ATens 2 0 0 0 1 1 AnsVarR
block2 = (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 1 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 0 0 1 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 3 0 0 0 0 0 AnsVarR
ans12 ATens 3 0 0 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 0 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter
            block3 :: TProd
  (ATens 2 0 0 0 0 0 AnsVarR)
  (Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
block3 = ATens 2 0 0 0 0 0 AnsVarR
ans8 ATens 2 0 0 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
delta3A

--order 3

eqn1ABC :: ATens 3 0 0 0 0 0 AnsVarR -> ATens 4 0 0 0 0 0 AnsVarR -> ATens 3 0 0 0 1 1 AnsVarR
eqn1ABC :: ATens 3 0 0 0 0 0 AnsVarR
-> ATens 4 0 0 0 0 0 AnsVarR -> ATens 3 0 0 0 1 1 AnsVarR
eqn1ABC ATens 3 0 0 0 0 0 AnsVarR
ans12 ATens 4 0 0 0 0 0 AnsVarR
ans16 = ATens 3 0 0 0 1 1 AnsVarR
block1 ATens 3 0 0 0 1 1 AnsVarR
-> ATens 3 0 0 0 1 1 AnsVarR -> ATens 3 0 0 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 0 0 1 1 AnsVarR
block2 ATens 3 0 0 0 1 1 AnsVarR
-> ATens 3 0 0 0 1 1 AnsVarR -> ATens 3 0 0 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 0 0 1 1 AnsVarR
block3 ATens 3 0 0 0 1 1 AnsVarR
-> ATens 3 0 0 0 1 1 AnsVarR -> ATens 3 0 0 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 0 0 1 1 AnsVarR
block4
        where
            block1 :: ATens 3 0 0 0 1 1 AnsVarR
block1 = (Int, Int)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 3 0 0 0 1 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (3 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 3 0 0 0 1 1 AnsVarR)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 3 0 0 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 3 0 0 0 0 0 AnsVarR
ans12 ATens 3 0 0 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 0 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea
            block2 :: ATens 3 0 0 0 1 1 AnsVarR
block2 = (Int, Int)
-> ATens 3 0 0 0 1 1 AnsVarR -> ATens 3 0 0 0 1 1 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
0,Int
2) ATens 3 0 0 0 1 1 AnsVarR
block1
            block3 :: ATens 3 0 0 0 1 1 AnsVarR
block3 = (Int, Int)
-> ATens 3 0 0 0 1 1 AnsVarR -> ATens 3 0 0 0 1 1 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
1,Int
2) ATens 3 0 0 0 1 1 AnsVarR
block1
            block4 :: ATens 3 0 0 0 1 1 AnsVarR
block4 = (Int, Int)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 3 0 0 0 1 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (3 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 3 0 0 0 1 1 AnsVarR)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 3 0 0 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 4 0 0 0 0 0 AnsVarR
ans16 ATens 4 0 0 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 4 0 0 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter

--the sub-graph with 2 total derivative

--order 0

-- | The equation is given by: \( 0 = a^{AI}C_{An}^{B(m\vert }N_B J^{\vert pq)}_I \).
eqn3 :: ATens 1 0 1 0 0 0 AnsVarR -> ATens 0 0 0 0 3 1 AnsVarR
eqn3 :: ATens 1 0 1 0 0 0 AnsVarR -> ATens 0 0 0 0 3 1 AnsVarR
eqn3 ATens 1 0 1 0 0 0 AnsVarR
ans6 = (Int, Int)
-> AbsTensor4
     0
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 0 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   0
   0
   (0 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 0 0 3 1 AnsVarR)
-> AbsTensor4
     0
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (0 + 1)
     (0 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     0
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (0 + 1)
   (0 + 1)
   Ind20
   (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
 -> AbsTensor2
      0
      0
      Ind20
      (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> AbsTensor2
     (0 + 1)
     (0 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     0
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall a b. (a -> b) -> a -> b
$ ATens 1 0 1 0 0 0 AnsVarR
ans6 ATens 1 0 1 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1
        Ind20
        (Tensor
           0
           Ind9
           (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational))))))
-> TProd
     (ATens 1 0 1 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              0
              Ind9
              (Tensor
                 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* (Int, Int)
-> AbsTensor2
     (0 + 1)
     (1 + 1)
     Ind20
     (Tensor
        0
        Ind9
        (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))))
-> Tensor
     0
     Ind20
     (Tensor
        1
        Ind20
        (Tensor
           0
           Ind9
           (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational))))))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
1) (ATens 1 1 0 1 3 1 (SField Rational)
interEqn5 ATens 1 1 0 1 3 1 (SField Rational)
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 0 0 Ind3 (SField Rational))))
-> TProd
     (ATens 1 1 0 1 3 1 (SField Rational))
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 0 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 0 0 Ind3 (SField Rational))))
flatArea)

--order 1

-- | The equation is given by: \( 0 = a^{AI}\left [C_{An}^{Bm}\delta^J _I- 2 \delta^B_A J_I^{pm}I^J_{pn} \right ] + a^{ABJ}C_{An}^{Cm}N_C + a^{BJ} \delta^m_n \).
eqn1AI :: ATens 1 0 1 0 0 0 AnsVarR -> ATens 2 0 1 0 0 0 AnsVarR -> ATens 1 0 1 0 1 1 AnsVarR
eqn1AI :: ATens 1 0 1 0 0 0 AnsVarR
-> ATens 2 0 1 0 0 0 AnsVarR -> ATens 1 0 1 0 1 1 AnsVarR
eqn1AI ATens 1 0 1 0 0 0 AnsVarR
ans6 ATens 2 0 1 0 0 0 AnsVarR
ans10_2 = ATens 1 0 1 0 1 1 AnsVarR
block1 ATens 1 0 1 0 1 1 AnsVarR
-> ATens 1 0 1 0 1 1 AnsVarR -> ATens 1 0 1 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 1 0 1 0 1 1 AnsVarR
block2 ATens 1 0 1 0 1 1 AnsVarR
-> ATens 1 0 1 0 1 1 AnsVarR -> ATens 1 0 1 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 1 0 1 0 1 1 AnsVarR
TProd
  (ATens 1 0 1 0 0 0 AnsVarR)
  (Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
block3
        where
            block1 :: ATens 1 0 1 0 1 1 AnsVarR
block1 = (Int, Int)
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor
        1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 1 0 1 0 1 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (1 + 1)
   (0 + 1)
   Ind20
   (Tensor
      1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 1 0 1 0 1 1 AnsVarR)
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor
        1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 1 0 1 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 1 0 0 0 AnsVarR
ans10_2 ATens 2 0 1 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 1 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter
            block2 :: ATens 1 0 1 0 1 1 AnsVarR
block2 = (Int, Int)
-> AbsTensor4
     1
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 1 0 1 0 1 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   1
   0
   (1 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 1 0 1 0 1 1 AnsVarR)
-> AbsTensor4
     1
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 1 0 1 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> AbsTensor2
     1
     0
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (1 + 1)
   (0 + 1)
   Ind20
   (Tensor
      2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> AbsTensor2
      1
      0
      Ind20
      (Tensor
         2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))))
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> AbsTensor2
     1
     0
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
forall a b. (a -> b) -> a -> b
$ ATens 1 0 1 0 0 0 AnsVarR
ans6 ATens 1 0 1 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 1 0 1 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interEqn3
            block3 :: TProd
  (ATens 1 0 1 0 0 0 AnsVarR)
  (Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
block3 = ATens 1 0 1 0 0 0 AnsVarR
ans6 ATens 1 0 1 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 1 0 1 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
delta3A

-- | The equation is given by: \( 0 = 2a^{A(p\vert Bq}C_{An}^{C\vert m)}N_C + a^{AI} \left [C_{An}^{B(m\vert} 2 J_{I}^{\vert p)q} - \delta_A^BJ_I^{pm}\delta^q_n \right ] \).
eqn2Aa :: ATens 1 0 1 0 0 0 AnsVarR -> ATens 2 0 0 0 2 0 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR
eqn2Aa :: ATens 1 0 1 0 0 0 AnsVarR
-> ATens 2 0 0 0 2 0 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR
eqn2Aa ATens 1 0 1 0 0 0 AnsVarR
ans6 ATens 2 0 0 0 2 0 AnsVarR
ans10_1 = ATens 1 0 0 0 3 1 AnsVarR
block1 ATens 1 0 0 0 3 1 AnsVarR
-> ATens 1 0 0 0 3 1 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 1 0 0 0 3 1 AnsVarR
block2
            where
                block1 :: ATens 1 0 0 0 3 1 AnsVarR
block1 = (Int, Int)
-> ATens 1 0 0 0 3 1 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
symATens5 (Int
1,Int
2) (ATens 1 0 0 0 3 1 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR)
-> ATens 1 0 0 0 3 1 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 1 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (1 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 1 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 1 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 2 0 AnsVarR
ans10_1 ATens 2 0 0 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter
                block2 :: ATens 1 0 0 0 3 1 AnsVarR
block2 = (Int, Int)
-> ATens 1 0 0 0 3 1 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
symATens5 (Int
1,Int
2) (ATens 1 0 0 0 3 1 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR)
-> ATens 1 0 0 0 3 1 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     1
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 1 0 0 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   1
   0
   (0 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 1 0 0 0 3 1 AnsVarR)
-> AbsTensor4
     1
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 1 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     1
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (1 + 1)
   (0 + 1)
   Ind20
   (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
 -> AbsTensor2
      1
      0
      Ind20
      (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     1
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall a b. (a -> b) -> a -> b
$ ATens 1 0 1 0 0 0 AnsVarR
ans6 ATens 1 0 1 0 0 0 AnsVarR
-> ATens 1 1 0 1 3 1 (SField Rational)
-> TProd
     (ATens 1 0 1 0 0 0 AnsVarR) (ATens 1 1 0 1 3 1 (SField Rational))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* ATens 1 1 0 1 3 1 (SField Rational)
interEqn4

-- | The equation is given by: \( 0 = a^{BAI}C_{An}^{C(m\vert}N_CJ_I^{\vert pq)} + a^{AI}C_{An}^{B(m \vert} J_I^{\vert pq)} \).
eqn3A :: ATens 1 0 1 0 0 0 AnsVarR -> ATens  2 0 1 0 0 0 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR
eqn3A :: ATens 1 0 1 0 0 0 AnsVarR
-> ATens 2 0 1 0 0 0 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR
eqn3A ATens 1 0 1 0 0 0 AnsVarR
ans6 ATens 2 0 1 0 0 0 AnsVarR
ans10_2 = ATens 1 0 0 0 3 1 AnsVarR
block1 ATens 1 0 0 0 3 1 AnsVarR
-> ATens 1 0 0 0 3 1 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 1 0 0 0 3 1 AnsVarR
block2
        where
            block1 :: ATens 1 0 0 0 3 1 AnsVarR
block1 = (Int, Int)
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 1 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (1 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 1 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 1 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     2
     1
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor4
     2 1 0 0 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   2
   1
   (0 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> AbsTensor4
      2 1 0 0 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor4
     2
     1
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor4
     2 1 0 0 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
forall a b. (a -> b) -> a -> b
$ ATens 1 0 1 0 0 0 AnsVarR
ans6 ATens 1 0 1 0 0 0 AnsVarR
-> ATens 1 1 0 1 3 1 (SField Rational)
-> TProd
     (ATens 1 0 1 0 0 0 AnsVarR) (ATens 1 1 0 1 3 1 (SField Rational))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* ATens 1 1 0 1 3 1 (SField Rational)
interEqn5
            block2 :: ATens 1 0 0 0 3 1 AnsVarR
block2 = (Int, Int)
-> AbsTensor4
     1
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 1 0 0 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   1
   0
   (0 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 1 0 0 0 3 1 AnsVarR)
-> AbsTensor4
     1
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 1 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     1
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (1 + 1)
   (0 + 1)
   Ind20
   (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
 -> AbsTensor2
      1
      0
      Ind20
      (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     1
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1)
     (1 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     2
     1
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
2,Int
1) (AbsTensor2
   (2 + 1)
   (1 + 1)
   Ind20
   (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
 -> AbsTensor2
      2
      1
      Ind20
      (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> AbsTensor2
     (2 + 1)
     (1 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     2
     1
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall a b. (a -> b) -> a -> b
$ ATens 2 0 1 0 0 0 AnsVarR
ans10_2 ATens 2 0 1 0 0 0 AnsVarR
-> ATens 1 1 0 1 3 1 (SField Rational)
-> TProd
     (ATens 2 0 1 0 0 0 AnsVarR) (ATens 1 1 0 1 3 1 (SField Rational))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* ATens 1 1 0 1 3 1 (SField Rational)
interEqn5 Tensor
  3
  Ind20
  (Tensor
     1 Ind20 (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 0 0 Ind3 (SField Rational))))
-> TProd
     (Tensor
        3
        Ind20
        (Tensor
           1
           Ind20
           (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))))
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 0 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 0 0 Ind3 (SField Rational))))
flatArea

--order 2

-- | The equation is given by: \( 0 = a^{CAI} \left [C_{An}^{Bm}\delta^J _I- 2 \delta^B_A J_I^{pm}I^J_{pn} \right ] + 2 a^{ACBJ} C_{An}^{Dm} N_D + a^{CBJ} \delta ^m _n \).
eqn1ABI :: ATens 2 0 1 0 0 0 AnsVarR -> ATens 3 0 1 0 0 0 AnsVarR -> ATens 2 0 1 0 1 1 AnsVarR
eqn1ABI :: ATens 2 0 1 0 0 0 AnsVarR
-> ATens 3 0 1 0 0 0 AnsVarR -> ATens 2 0 1 0 1 1 AnsVarR
eqn1ABI ATens 2 0 1 0 0 0 AnsVarR
ans10_2 ATens 3 0 1 0 0 0 AnsVarR
ans14_2 = ATens 2 0 1 0 1 1 AnsVarR
block1 ATens 2 0 1 0 1 1 AnsVarR
-> ATens 2 0 1 0 1 1 AnsVarR -> ATens 2 0 1 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 1 0 1 1 AnsVarR
block2 ATens 2 0 1 0 1 1 AnsVarR
-> ATens 2 0 1 0 1 1 AnsVarR -> ATens 2 0 1 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 1 0 1 1 AnsVarR
block3 ATens 2 0 1 0 1 1 AnsVarR
-> ATens 2 0 1 0 1 1 AnsVarR -> ATens 2 0 1 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 1 0 1 1 AnsVarR
TProd
  (ATens 2 0 1 0 0 0 AnsVarR)
  (Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
block4
        where
            block1 :: ATens 2 0 1 0 1 1 AnsVarR
block1 = (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 1 0 1 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 1 0 1 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 1 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 3 0 1 0 0 0 AnsVarR
ans14_2 ATens 3 0 1 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 1 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter
            block2 :: ATens 2 0 1 0 1 1 AnsVarR
block2 = (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 1 0 1 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 1 0 1 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 1 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> ATens 2 0 1 0 0 0 AnsVarR
-> TProd
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
     (ATens 2 0 1 0 0 0 AnsVarR)
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* ATens 2 0 1 0 0 0 AnsVarR
ans10_2
            block3 :: ATens 2 0 1 0 1 1 AnsVarR
block3 = (Int, Int)
-> AbsTensor4
     2
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 2 0 1 0 1 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   2
   0
   (1 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 2 0 1 0 1 1 AnsVarR)
-> AbsTensor4
     2
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 2 0 1 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> AbsTensor2
     2
     0
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> AbsTensor2
      2
      0
      Ind20
      (Tensor
         2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))))
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> AbsTensor2
     2
     0
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
forall a b. (a -> b) -> a -> b
$ ATens 2 0 1 0 0 0 AnsVarR
ans10_2 ATens 2 0 1 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 1 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interEqn3
            block4 :: TProd
  (ATens 2 0 1 0 0 0 AnsVarR)
  (Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
block4 = ATens 2 0 1 0 0 0 AnsVarR
ans10_2 ATens 2 0 1 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 1 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
delta3A

-- | The equation is given by: \( 0 = 2 a^{BCAI}C_{An}^{D(m \vert}N_DJ_I^{\vert pq)} + a^{CAI}C_{An}^{B(m \vert} J_I^{\vert pq)} \).
eqn3AB :: ATens 2 0 1 0 0 0 AnsVarR -> ATens 3 0 1 0 0 0 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
eqn3AB :: ATens 2 0 1 0 0 0 AnsVarR
-> ATens 3 0 1 0 0 0 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
eqn3AB ATens 2 0 1 0 0 0 AnsVarR
ans10_2 ATens 3 0 1 0 0 0 AnsVarR
ans14_2 = ATens 2 0 0 0 3 1 AnsVarR
block1 ATens 2 0 0 0 3 1 AnsVarR
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 3 1 AnsVarR
block2
        where
            block1 :: ATens 2 0 0 0 3 1 AnsVarR
block1 = (Int, Int)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
symATens1 (Int
0,Int
1) (ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     2
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 2 0 0 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   2
   0
   (0 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 2 0 0 0 3 1 AnsVarR)
-> AbsTensor4
     2
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     2
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
 -> AbsTensor2
      2
      0
      Ind20
      (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     2
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall a b. (a -> b) -> a -> b
$ ATens 2 0 1 0 0 0 AnsVarR
ans10_2 ATens 2 0 1 0 0 0 AnsVarR
-> ATens 1 1 0 1 3 1 (SField Rational)
-> TProd
     (ATens 2 0 1 0 0 0 AnsVarR) (ATens 1 1 0 1 3 1 (SField Rational))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* ATens 1 1 0 1 3 1 (SField Rational)
interEqn5
            block2 :: ATens 2 0 0 0 3 1 AnsVarR
block2 = (Int, Int)
-> AbsTensor4
     2
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 2 0 0 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   2
   0
   (0 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 2 0 0 0 3 1 AnsVarR)
-> AbsTensor4
     2
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     2
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
2,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
 -> AbsTensor2
      2
      0
      Ind20
      (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     2
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall a b. (a -> b) -> a -> b
$ ATens 3 0 1 0 0 0 AnsVarR
ans14_2 ATens 3 0 1 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1
        Ind20
        (Tensor
           0
           Ind9
           (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational))))))
-> TProd
     (ATens 3 0 1 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              0
              Ind9
              (Tensor
                 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* (Int, Int)
-> AbsTensor2
     (0 + 1)
     (1 + 1)
     Ind20
     (Tensor
        0
        Ind9
        (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))))
-> Tensor
     0
     Ind20
     (Tensor
        1
        Ind20
        (Tensor
           0
           Ind9
           (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational))))))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
1) (ATens 1 1 0 1 3 1 (SField Rational)
interEqn5 ATens 1 1 0 1 3 1 (SField Rational)
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 0 0 Ind3 (SField Rational))))
-> TProd
     (ATens 1 1 0 1 3 1 (SField Rational))
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 0 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 0 0 Ind3 (SField Rational))))
flatArea)

-- | The equation is given by: \( 0 = 2 a^{C A(p \vert B q} C_{An}^{D \vert m )} N_D + a^{CAI} \left [C_{An}^{B(m\vert} 2 J_{I}^{\vert p)q} - \delta_A^BJ_I^{pm}\delta^q_n \right ] \).
eqn2ABb :: ATens 2 0 0 0 2 0 AnsVarR -> ATens 2 0 1 0 0 0 AnsVarR -> ATens 3 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
eqn2ABb :: ATens 2 0 0 0 2 0 AnsVarR
-> ATens 2 0 1 0 0 0 AnsVarR
-> ATens 3 0 0 0 2 0 AnsVarR
-> ATens 2 0 0 0 3 1 AnsVarR
eqn2ABb ATens 2 0 0 0 2 0 AnsVarR
ans10_1 ATens 2 0 1 0 0 0 AnsVarR
ans10_2 ATens 3 0 0 0 2 0 AnsVarR
ans14_1 = ATens 2 0 0 0 3 1 AnsVarR
block1 ATens 2 0 0 0 3 1 AnsVarR
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 3 1 AnsVarR
block2 ATens 2 0 0 0 3 1 AnsVarR
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 3 1 AnsVarR
block3
        where
            block1 :: ATens 2 0 0 0 3 1 AnsVarR
block1 = (Int, Int)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
symATens5 (Int
0,Int
2) (ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 3 0 0 0 2 0 AnsVarR
ans14_1 ATens 3 0 0 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 0 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter
            block2' :: ATens 2 0 0 0 3 1 AnsVarR
block2' = (Int, Int)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
0,Int
1) (ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     2
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 2 0 0 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   2
   0
   (0 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 2 0 0 0 3 1 AnsVarR)
-> AbsTensor4
     2
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     2
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
 -> AbsTensor2
      2
      0
      Ind20
      (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     2
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall a b. (a -> b) -> a -> b
$ ATens 2 0 1 0 0 0 AnsVarR
ans10_2 ATens 2 0 1 0 0 0 AnsVarR
-> ATens 1 1 0 1 3 1 (SField Rational)
-> TProd
     (ATens 2 0 1 0 0 0 AnsVarR) (ATens 1 1 0 1 3 1 (SField Rational))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* ATens 1 1 0 1 3 1 (SField Rational)
interEqn4
            block2 :: ATens 2 0 0 0 3 1 AnsVarR
block2 = (Int, Int)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
symATens5 (Int
0,Int
2) ATens 2 0 0 0 3 1 AnsVarR
block2'
            block3 :: ATens 2 0 0 0 3 1 AnsVarR
block3 = (Int, Int)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
0,Int
1) (ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
symATens5 (Int
0,Int
2) (ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 2 0 AnsVarR
ans10_1 ATens 2 0 0 0 2 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 2 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea

-- | The equation is given by: \( 0 = 2 a^{ApCr} \left [ C_{An}^{Bm} \delta ^q_p - \delta^B_A \delta^m_p \delta^q_n \right ] +2 a^{A Bq Cr} C_{An}^{Dm} N_D + 2 a^{BqCr} \delta^m_n \).
eqn1AaBb :: ATens 2 0 0 0 2 0 AnsVarR -> ATens 3 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
eqn1AaBb :: ATens 2 0 0 0 2 0 AnsVarR
-> ATens 3 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
eqn1AaBb ATens 2 0 0 0 2 0 AnsVarR
ans10_1 ATens 3 0 0 0 2 0 AnsVarR
ans14_1 = ATens 2 0 0 0 3 1 AnsVarR
block1 ATens 2 0 0 0 3 1 AnsVarR
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 3 1 AnsVarR
block2 ATens 2 0 0 0 3 1 AnsVarR
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 3 1 AnsVarR
block3 ATens 2 0 0 0 3 1 AnsVarR
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 3 1 AnsVarR
block4
        where
            block1 :: ATens 2 0 0 0 3 1 AnsVarR
block1 = (Int, Int)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
1,Int
2) (ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 3 0 0 0 2 0 AnsVarR
ans14_1 ATens 3 0 0 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 0 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter
            block2 :: ATens 2 0 0 0 3 1 AnsVarR
block2 = (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 3 1 0 0 (3 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 3 1 0 0 3 1 Ind20 Ind9 Ind3 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
0,Int
1) (AbsTensor6 3 1 0 0 (3 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor6 3 1 0 0 3 1 Ind20 Ind9 Ind3 AnsVarR)
-> AbsTensor6 3 1 0 0 (3 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor6 3 1 0 0 3 1 Ind20 Ind9 Ind3 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 2 0 AnsVarR
ans10_1 ATens 2 0 0 0 2 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 2 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational))))
interEqn2
            block3 :: ATens 2 0 0 0 3 1 AnsVarR
block3 = (Int, Int)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
0,Int
1) (ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
0,Int
2) ATens 2 0 0 0 3 1 AnsVarR
block2
            block4 :: ATens 2 0 0 0 3 1 AnsVarR
block4 = (Int, Int)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
1,Int
2) (ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 2 0 AnsVarR
ans10_1 ATens 2 0 0 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
delta3A

--order 2: further equations of the next order


eqn1ABbCc :: ATens 3 0 0 0 2 0 AnsVarR -> ATens 4 0 0 0 2 0 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
eqn1ABbCc :: ATens 3 0 0 0 2 0 AnsVarR
-> ATens 4 0 0 0 2 0 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
eqn1ABbCc ATens 3 0 0 0 2 0 AnsVarR
ans14_1 ATens 4 0 0 0 2 0 AnsVarR
ans18_3 = ATens 3 0 0 0 3 1 AnsVarR
block1 ATens 3 0 0 0 3 1 AnsVarR
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 0 0 3 1 AnsVarR
block2 ATens 3 0 0 0 3 1 AnsVarR
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 0 0 3 1 AnsVarR
block3 ATens 3 0 0 0 3 1 AnsVarR
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 0 0 3 1 AnsVarR
block4
        where
            block1 :: ATens 3 0 0 0 3 1 AnsVarR
block1 = (Int, Int)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
1,Int
2) (ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 3 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (3 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 3 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 3 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 4 0 0 0 2 0 AnsVarR
ans18_3 ATens 4 0 0 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 4 0 0 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter
            block2 :: ATens 3 0 0 0 3 1 AnsVarR
block2 = (Int, Int)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
0,Int
1) (ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 3 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (3 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 3 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 3 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> ATens 3 0 0 0 2 0 AnsVarR
-> TProd
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
     (ATens 3 0 0 0 2 0 AnsVarR)
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* ATens 3 0 0 0 2 0 AnsVarR
ans14_1
            block3 :: ATens 3 0 0 0 3 1 AnsVarR
block3 = (Int, Int)
-> AbsTensor6 3 0 0 0 (3 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
-> ATens 3 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
0,Int
1) (AbsTensor6 3 0 0 0 (3 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> ATens 3 0 0 0 3 1 AnsVarR)
-> AbsTensor6 3 0 0 0 (3 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
-> ATens 3 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 4 Ind3 (Tensor 2 Ind3 AnsVarR))))
-> AbsTensor2
     3
     0
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 4 Ind3 (Tensor 2 Ind3 AnsVarR))))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (3 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 4 Ind3 (Tensor 2 Ind3 AnsVarR))))
 -> AbsTensor2
      3
      0
      Ind20
      (Tensor
         0 Ind9 (Tensor 0 Ind9 (Tensor 4 Ind3 (Tensor 2 Ind3 AnsVarR)))))
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 4 Ind3 (Tensor 2 Ind3 AnsVarR))))
-> AbsTensor2
     3
     0
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 4 Ind3 (Tensor 2 Ind3 AnsVarR))))
forall a b. (a -> b) -> a -> b
$ ATens 3 0 0 0 2 0 AnsVarR
ans14_1 ATens 3 0 0 0 2 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 0 0 2 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 2 2 Ind3 (SField Rational))))
interEqn2
            block4 :: ATens 3 0 0 0 3 1 AnsVarR
block4 = (Int, Int)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
1,Int
2) (ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
0,Int
2) ATens 3 0 0 0 3 1 AnsVarR
block3

eqn1ABCI :: ATens 3 0 1 0 0 0 AnsVarR -> ATens 4 0 1 0 0 0 AnsVarR -> ATens 3 0 1 0 1 1 AnsVarR
eqn1ABCI :: ATens 3 0 1 0 0 0 AnsVarR
-> ATens 4 0 1 0 0 0 AnsVarR -> ATens 3 0 1 0 1 1 AnsVarR
eqn1ABCI ATens 3 0 1 0 0 0 AnsVarR
ans14_2 ATens 4 0 1 0 0 0 AnsVarR
ans18_2 = ATens 3 0 1 0 1 1 AnsVarR
block1 ATens 3 0 1 0 1 1 AnsVarR
-> ATens 3 0 1 0 1 1 AnsVarR -> ATens 3 0 1 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 1 0 1 1 AnsVarR
block2 ATens 3 0 1 0 1 1 AnsVarR
-> ATens 3 0 1 0 1 1 AnsVarR -> ATens 3 0 1 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 1 0 1 1 AnsVarR
block3
        where
            block1 :: ATens 3 0 1 0 1 1 AnsVarR
block1 = (Int, Int)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 3 0 1 0 1 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (3 + 1)
   (0 + 1)
   Ind20
   (Tensor
      1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 3 0 1 0 1 1 AnsVarR)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 3 0 1 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 4 0 1 0 0 0 AnsVarR
ans18_2 ATens 4 0 1 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 4 0 1 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter
            block2 :: ATens 3 0 1 0 1 1 AnsVarR
block2 = (Int, Int)
-> ATens 3 0 1 0 1 1 AnsVarR -> ATens 3 0 1 0 1 1 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
symATens1 (Int
0,Int
1) (ATens 3 0 1 0 1 1 AnsVarR -> ATens 3 0 1 0 1 1 AnsVarR)
-> ATens 3 0 1 0 1 1 AnsVarR -> ATens 3 0 1 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 3 0 1 0 1 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (3 + 1)
   (0 + 1)
   Ind20
   (Tensor
      1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 3 0 1 0 1 1 AnsVarR)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 3 0 1 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> ATens 3 0 1 0 0 0 AnsVarR
-> TProd
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
     (ATens 3 0 1 0 0 0 AnsVarR)
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* ATens 3 0 1 0 0 0 AnsVarR
ans14_2
            block3 :: ATens 3 0 1 0 1 1 AnsVarR
block3 = (Int, Int)
-> AbsTensor4
     3
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 3 0 1 0 1 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   3
   0
   (1 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 3 0 1 0 1 1 AnsVarR)
-> AbsTensor4
     3
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 3 0 1 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> AbsTensor2
     3
     0
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
2,Int
0) (AbsTensor2
   (3 + 1)
   (0 + 1)
   Ind20
   (Tensor
      2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> AbsTensor2
      3
      0
      Ind20
      (Tensor
         2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))))
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> AbsTensor2
     3
     0
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
forall a b. (a -> b) -> a -> b
$ ATens 3 0 1 0 0 0 AnsVarR
ans14_2 ATens 3 0 1 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 1 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interEqn3

eqn2ABCc :: ATens 3 0 0 0 2 0 AnsVarR -> ATens 3 0 1 0 0 0 AnsVarR -> ATens 4 0 0 0 2 0 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
eqn2ABCc :: ATens 3 0 0 0 2 0 AnsVarR
-> ATens 3 0 1 0 0 0 AnsVarR
-> ATens 4 0 0 0 2 0 AnsVarR
-> ATens 3 0 0 0 3 1 AnsVarR
eqn2ABCc ATens 3 0 0 0 2 0 AnsVarR
ans14_1 ATens 3 0 1 0 0 0 AnsVarR
ans14_2 ATens 4 0 0 0 2 0 AnsVarR
ans18_3 = ATens 3 0 0 0 3 1 AnsVarR
block1 ATens 3 0 0 0 3 1 AnsVarR
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 0 0 3 1 AnsVarR
block2 ATens 3 0 0 0 3 1 AnsVarR
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 0 0 3 1 AnsVarR
block3
        where
            block1 :: ATens 3 0 0 0 3 1 AnsVarR
block1 = (Int, Int)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
symATens5 (Int
0,Int
2) (ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 3 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
2,Int
0) (AbsTensor2
   (3 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 3 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 3 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 4 0 0 0 2 0 AnsVarR
ans18_3 ATens 4 0 0 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 4 0 0 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter
            block2 :: ATens 3 0 0 0 3 1 AnsVarR
block2 = (Int, Int)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
symATens5 (Int
0,Int
2) (ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
0,Int
1) (ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     3
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 3 0 0 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   3
   0
   (0 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 3 0 0 0 3 1 AnsVarR)
-> AbsTensor4
     3
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 3 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     3
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
2,Int
0) (AbsTensor2
   (3 + 1)
   (0 + 1)
   Ind20
   (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
 -> AbsTensor2
      3
      0
      Ind20
      (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     3
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall a b. (a -> b) -> a -> b
$ ATens 3 0 1 0 0 0 AnsVarR
ans14_2 ATens 3 0 1 0 0 0 AnsVarR
-> ATens 1 1 0 1 3 1 (SField Rational)
-> TProd
     (ATens 3 0 1 0 0 0 AnsVarR) (ATens 1 1 0 1 3 1 (SField Rational))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* ATens 1 1 0 1 3 1 (SField Rational)
interEqn4
            block3 :: ATens 3 0 0 0 3 1 AnsVarR
block3 = (Int, Int)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
symATens1 (Int
0,Int
1) (ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
1,Int
2) (ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
symATens5 (Int
0,Int
2) (ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 3 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (3 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 3 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 3 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 3 0 0 0 2 0 AnsVarR
ans14_1 ATens 3 0 0 0 2 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 0 0 2 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea

eqn3ABC :: ATens 3 0 1 0 0 0 AnsVarR -> ATens 4 0 1 0 0 0 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
eqn3ABC :: ATens 3 0 1 0 0 0 AnsVarR
-> ATens 4 0 1 0 0 0 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
eqn3ABC ATens 3 0 1 0 0 0 AnsVarR
ans14_2 ATens 4 0 1 0 0 0 AnsVarR
ans18_2 = ATens 3 0 0 0 3 1 AnsVarR
block1 ATens 3 0 0 0 3 1 AnsVarR
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 0 0 3 1 AnsVarR
block2 ATens 3 0 0 0 3 1 AnsVarR
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 0 0 3 1 AnsVarR
block3 ATens 3 0 0 0 3 1 AnsVarR
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 3 0 0 0 3 1 AnsVarR
block4
        where
            block1 :: ATens 3 0 0 0 3 1 AnsVarR
block1 = (Int, Int)
-> AbsTensor4
     3
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 3 0 0 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   3
   0
   (0 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 3 0 0 0 3 1 AnsVarR)
-> AbsTensor4
     3
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 3 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     3
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
3,Int
0) (AbsTensor2
   (3 + 1)
   (0 + 1)
   Ind20
   (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
 -> AbsTensor2
      3
      0
      Ind20
      (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     3
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall a b. (a -> b) -> a -> b
$ ATens 4 0 1 0 0 0 AnsVarR
ans18_2 ATens 4 0 1 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1
        Ind20
        (Tensor
           0
           Ind9
           (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational))))))
-> TProd
     (ATens 4 0 1 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              0
              Ind9
              (Tensor
                 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* (Int, Int)
-> AbsTensor2
     (0 + 1)
     (1 + 1)
     Ind20
     (Tensor
        0
        Ind9
        (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))))
-> Tensor
     0
     Ind20
     (Tensor
        1
        Ind20
        (Tensor
           0
           Ind9
           (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational))))))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
1) (ATens 1 1 0 1 3 1 (SField Rational)
interEqn5 ATens 1 1 0 1 3 1 (SField Rational)
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 0 0 Ind3 (SField Rational))))
-> TProd
     (ATens 1 1 0 1 3 1 (SField Rational))
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 0 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 0 0 Ind3 (SField Rational))))
flatArea)
            block2 :: ATens 3 0 0 0 3 1 AnsVarR
block2 = (Int, Int)
-> AbsTensor4
     3
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 3 0 0 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   3
   0
   (0 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 3 0 0 0 3 1 AnsVarR)
-> AbsTensor4
     3
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 3 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     3
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
2,Int
0) (AbsTensor2
   (3 + 1)
   (0 + 1)
   Ind20
   (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
 -> AbsTensor2
      3
      0
      Ind20
      (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> AbsTensor2
     (3 + 1)
     (0 + 1)
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor2
     3
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall a b. (a -> b) -> a -> b
$ ATens 3 0 1 0 0 0 AnsVarR
ans14_2 ATens 3 0 1 0 0 0 AnsVarR
-> ATens 1 1 0 1 3 1 (SField Rational)
-> TProd
     (ATens 3 0 1 0 0 0 AnsVarR) (ATens 1 1 0 1 3 1 (SField Rational))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* ATens 1 1 0 1 3 1 (SField Rational)
interEqn5
            block3 :: ATens 3 0 0 0 3 1 AnsVarR
block3 = (Int, Int)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
0,Int
2) ATens 3 0 0 0 3 1 AnsVarR
block2
            block4 :: ATens 3 0 0 0 3 1 AnsVarR
block4 = (Int, Int)
-> ATens 3 0 0 0 3 1 AnsVarR -> ATens 3 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
1,Int
2) ATens 3 0 0 0 3 1 AnsVarR
block2

--the sub graph with a total of 4 derivatives: further equations that contain more derivatives

eqn3AI :: ATens 2 0 2 0 0 0 AnsVarR -> ATens 1 0 1 0 3 1 AnsVarR
eqn3AI :: ATens 2 0 2 0 0 0 AnsVarR -> ATens 1 0 1 0 3 1 AnsVarR
eqn3AI ATens 2 0 2 0 0 0 AnsVarR
ans12_1 = (Int, Int)
-> AbsTensor4
     1
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 1 0 1 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   1
   0
   (1 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 1 0 1 0 3 1 AnsVarR)
-> AbsTensor4
     1
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 1 0 1 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> AbsTensor2
     1
     0
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (1 + 1)
   (0 + 1)
   Ind20
   (Tensor
      2 Ind9 (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> AbsTensor2
      1
      0
      Ind20
      (Tensor
         2 Ind9 (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))))
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> AbsTensor2
     1
     0
     Ind20
     (Tensor
        2 Ind9 (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
forall a b. (a -> b) -> a -> b
$ ATens 2 0 2 0 0 0 AnsVarR
ans12_1 ATens 2 0 2 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1
        Ind20
        (Tensor
           0
           Ind9
           (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational))))))
-> TProd
     (ATens 2 0 2 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1
           Ind20
           (Tensor
              0
              Ind9
              (Tensor
                 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* (Int, Int)
-> AbsTensor2
     (0 + 1)
     (1 + 1)
     Ind20
     (Tensor
        0
        Ind9
        (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))))
-> Tensor
     0
     Ind20
     (Tensor
        1
        Ind20
        (Tensor
           0
           Ind9
           (Tensor 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational))))))
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
1) (ATens 1 1 0 1 3 1 (SField Rational)
interEqn5 ATens 1 1 0 1 3 1 (SField Rational)
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 0 0 Ind3 (SField Rational))))
-> TProd
     (ATens 1 1 0 1 3 1 (SField Rational))
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 0 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 0 0 Ind3 (SField Rational))))
flatArea)


--tensor trafo equations for rom calculations (use density or scalar)
--ansätze must be computed from lagrangian ansätze

--linear order

linMass :: ATens 2 0 0 0 0 0 AnsVarR -> ATens 1 0 0 0 1 1 AnsVarR
linMass :: ATens 2 0 0 0 0 0 AnsVarR -> ATens 1 0 0 0 1 1 AnsVarR
linMass ATens 2 0 0 0 0 0 AnsVarR
ans8 = ATens 1 0 0 0 1 1 AnsVarR
tens1
    where
        tens1 :: ATens 1 0 0 0 1 1 AnsVarR
tens1 = (Int, Int)
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 1 0 0 0 1 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (1 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 1 0 0 0 1 1 AnsVarR)
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 1 0 0 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 0 0 AnsVarR
ans8 ATens 2 0 0 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter

linKin :: ATens 2 0 0 0 2 0 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR
linKin :: ATens 2 0 0 0 2 0 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR
linKin ATens 2 0 0 0 2 0 AnsVarR
ans10 = ATens 1 0 0 0 3 1 AnsVarR
tens1
    where
        tens1 :: ATens 1 0 0 0 3 1 AnsVarR
tens1 = [Int] -> ATens 1 0 0 0 3 1 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
[Int]
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
cyclicSymATens5 [Int
0,Int
1,Int
2] (ATens 1 0 0 0 3 1 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR)
-> ATens 1 0 0 0 3 1 AnsVarR -> ATens 1 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 1 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (1 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 1 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (1 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 1 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 2 0 AnsVarR
ans10 ATens 2 0 0 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter

--quadratic order

quadMass :: ATens 3 0 0 0 0 0 AnsVarR -> ATens 2 0 0 0 0 0 AnsVarR -> ATens 2 0 0 0 1 1 AnsVarR
quadMass :: ATens 3 0 0 0 0 0 AnsVarR
-> ATens 2 0 0 0 0 0 AnsVarR -> ATens 2 0 0 0 1 1 AnsVarR
quadMass ATens 3 0 0 0 0 0 AnsVarR
ans12 ATens 2 0 0 0 0 0 AnsVarR
ans8 = ATens 2 0 0 0 1 1 AnsVarR
Tensor
  2
  Ind20
  (TProd
     (SField Rational)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
tens1 ATens 2 0 0 0 1 1 AnsVarR
-> ATens 2 0 0 0 1 1 AnsVarR -> ATens 2 0 0 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 1 1 AnsVarR
Tensor
  2
  Ind20
  (TProd
     (SField Rational)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
tens2 ATens 2 0 0 0 1 1 AnsVarR
-> ATens 2 0 0 0 1 1 AnsVarR -> ATens 2 0 0 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 1 1 AnsVarR
Tensor
  2
  Ind20
  (TProd
     (SField Rational)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
tens3 ATens 2 0 0 0 1 1 AnsVarR
-> ATens 2 0 0 0 1 1 AnsVarR -> ATens 2 0 0 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 1 1 AnsVarR
Tensor
  2
  Ind20
  (TProd
     (SField Rational)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
dens
    where
        dens :: Tensor
  2
  Ind20
  (TProd
     (SField Rational)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
dens = (Rational -> SField Rational
forall a. a -> SField a
SField (Rational
2 :: Rational) SField Rational
-> ATens 2 0 0 0 1 1 AnsVarR
-> Tensor
     2
     Ind20
     (TProd
        (SField Rational)
        (Tensor
           0
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
forall k s v (n :: Nat).
(TIndex k, Prod s v) =>
s -> Tensor n k v -> Tensor n k (TProd s v)
&.) (ATens 2 0 0 0 1 1 AnsVarR
 -> Tensor
      2
      Ind20
      (TProd
         (SField Rational)
         (Tensor
            0
            Ind20
            (Tensor
               0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))))))
-> ATens 2 0 0 0 1 1 AnsVarR
-> Tensor
     2
     Ind20
     (TProd
        (SField Rational)
        (Tensor
           0
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 0 0 AnsVarR
ans8 ATens 2 0 0 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
delta3A
        tens1 :: Tensor
  2
  Ind20
  (TProd
     (SField Rational)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
tens1 = (Rational -> SField Rational
forall a. a -> SField a
SField (Rational
6 :: Rational) SField Rational
-> ATens 2 0 0 0 1 1 AnsVarR
-> Tensor
     2
     Ind20
     (TProd
        (SField Rational)
        (Tensor
           0
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
forall k s v (n :: Nat).
(TIndex k, Prod s v) =>
s -> Tensor n k v -> Tensor n k (TProd s v)
&.) (ATens 2 0 0 0 1 1 AnsVarR
 -> Tensor
      2
      Ind20
      (TProd
         (SField Rational)
         (Tensor
            0
            Ind20
            (Tensor
               0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))))))
-> ATens 2 0 0 0 1 1 AnsVarR
-> Tensor
     2
     Ind20
     (TProd
        (SField Rational)
        (Tensor
           0
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 1 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 0 0 1 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 3 0 0 0 0 0 AnsVarR
ans12 ATens 3 0 0 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 0 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter
        tens2 :: Tensor
  2
  Ind20
  (TProd
     (SField Rational)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
tens2 = (Rational -> SField Rational
forall a. a -> SField a
SField (Rational
2 :: Rational) SField Rational
-> ATens 2 0 0 0 1 1 AnsVarR
-> Tensor
     2
     Ind20
     (TProd
        (SField Rational)
        (Tensor
           0
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
forall k s v (n :: Nat).
(TIndex k, Prod s v) =>
s -> Tensor n k v -> Tensor n k (TProd s v)
&.) (ATens 2 0 0 0 1 1 AnsVarR
 -> Tensor
      2
      Ind20
      (TProd
         (SField Rational)
         (Tensor
            0
            Ind20
            (Tensor
               0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))))))
-> ATens 2 0 0 0 1 1 AnsVarR
-> Tensor
     2
     Ind20
     (TProd
        (SField Rational)
        (Tensor
           0
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 1 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 0 0 1 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 0 0 AnsVarR
ans8 ATens 2 0 0 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea
        tens3 :: Tensor
  2
  Ind20
  (TProd
     (SField Rational)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
tens3 = (Rational -> SField Rational
forall a. a -> SField a
SField (Rational
2 :: Rational) SField Rational
-> ATens 2 0 0 0 1 1 AnsVarR
-> Tensor
     2
     Ind20
     (TProd
        (SField Rational)
        (Tensor
           0
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
forall k s v (n :: Nat).
(TIndex k, Prod s v) =>
s -> Tensor n k v -> Tensor n k (TProd s v)
&.) (ATens 2 0 0 0 1 1 AnsVarR
 -> Tensor
      2
      Ind20
      (TProd
         (SField Rational)
         (Tensor
            0
            Ind20
            (Tensor
               0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))))))
-> ATens 2 0 0 0 1 1 AnsVarR
-> Tensor
     2
     Ind20
     (TProd
        (SField Rational)
        (Tensor
           0
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))))
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 2 0 0 0 1 1 AnsVarR -> ATens 2 0 0 0 1 1 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
0,Int
1) (ATens 2 0 0 0 1 1 AnsVarR -> ATens 2 0 0 0 1 1 AnsVarR)
-> ATens 2 0 0 0 1 1 AnsVarR -> ATens 2 0 0 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 1 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 0 0 1 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 0 0 AnsVarR
ans8 ATens 2 0 0 0 0 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 0 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea

quadKin1 :: ATens 3 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
quadKin1 :: ATens 3 0 0 0 2 0 AnsVarR
-> ATens 2 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
quadKin1 ATens 3 0 0 0 2 0 AnsVarR
ans14 ATens 2 0 0 0 2 0 AnsVarR
ans10 = ATens 2 0 0 0 3 1 AnsVarR
Tensor
  2
  Ind20
  (TProd
     (SField Rational)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))))
tens1 ATens 2 0 0 0 3 1 AnsVarR
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 3 1 AnsVarR
tens2 ATens 2 0 0 0 3 1 AnsVarR
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 3 1 AnsVarR
tens3 ATens 2 0 0 0 3 1 AnsVarR
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 3 1 AnsVarR
TProd
  (ATens 2 0 0 0 2 0 AnsVarR)
  (Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
dens ATens 2 0 0 0 3 1 AnsVarR
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&- (ATens 2 0 0 0 3 1 AnsVarR
tens4_1 ATens 2 0 0 0 3 1 AnsVarR
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 3 1 AnsVarR
tens4_2)
    where
        dens :: TProd
  (ATens 2 0 0 0 2 0 AnsVarR)
  (Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
dens = ATens 2 0 0 0 2 0 AnsVarR
ans10 ATens 2 0 0 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
delta3A
        tens1 :: Tensor
  2
  Ind20
  (TProd
     (SField Rational)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))))
tens1 = (Rational -> SField Rational
forall a. a -> SField a
SField (Rational
1Rational -> Rational -> Rational
forall a. Fractional a => a -> a -> a
/Rational
2 :: Rational) SField Rational
-> ATens 2 0 0 0 3 1 AnsVarR
-> Tensor
     2
     Ind20
     (TProd
        (SField Rational)
        (Tensor
           0
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))))
forall k s v (n :: Nat).
(TIndex k, Prod s v) =>
s -> Tensor n k v -> Tensor n k (TProd s v)
&.) (ATens 2 0 0 0 3 1 AnsVarR
 -> Tensor
      2
      Ind20
      (TProd
         (SField Rational)
         (Tensor
            0
            Ind20
            (Tensor
               0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))))))
-> ATens 2 0 0 0 3 1 AnsVarR
-> Tensor
     2
     Ind20
     (TProd
        (SField Rational)
        (Tensor
           0
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))))
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
symATens5 (Int
0,Int
1) (ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
2,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 3 0 0 0 2 0 AnsVarR
ans14 ATens 3 0 0 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 0 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter
        tens2 :: ATens 2 0 0 0 3 1 AnsVarR
tens2 = (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 2 0 AnsVarR
ans10 ATens 2 0 0 0 2 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 2 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea
        tens3 :: ATens 2 0 0 0 3 1 AnsVarR
tens3 = (Int, Int)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
0,Int
1) (ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 2 0 AnsVarR
ans10 ATens 2 0 0 0 2 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 2 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea
        tens4_1 :: ATens 2 0 0 0 3 1 AnsVarR
tens4_1 = (Int, Int)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
1,Int
2) (ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 2 0 AnsVarR
ans10 ATens 2 0 0 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
delta3A
        tens4_2 :: ATens 2 0 0 0 3 1 AnsVarR
tens4_2 = [Int] -> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall (n5 :: Nat) k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat)
       (n4 :: Nat).
(KnownNat n5, TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
[Int]
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
resortTens5 [Int
1,Int
2,Int
0] (ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 2 0 AnsVarR
ans10 ATens 2 0 0 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
delta3A


quadKin2 :: ATens 3 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
quadKin2 :: ATens 3 0 0 0 2 0 AnsVarR
-> ATens 2 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
quadKin2 ATens 3 0 0 0 2 0 AnsVarR
ans14 ATens 2 0 0 0 2 0 AnsVarR
ans10 = (Int, Int)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
symATens5 (Int
0,Int
2) (ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 3 1 AnsVarR
Tensor
  2
  Ind20
  (TProd
     (SField Rational)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))))
tens1 ATens 2 0 0 0 3 1 AnsVarR
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 3 1 AnsVarR
tens3 ATens 2 0 0 0 3 1 AnsVarR
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 3 1 AnsVarR
tens4 ATens 2 0 0 0 3 1 AnsVarR
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&- (ATens 2 0 0 0 3 1 AnsVarR
tens0 ATens 2 0 0 0 3 1 AnsVarR
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 3 1 AnsVarR
tens2)
    where
        tens0 :: ATens 2 0 0 0 3 1 AnsVarR
tens0 = (Int, Int)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
1,Int
2) (ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 2 0 AnsVarR
ans10 ATens 2 0 0 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
delta3A
        tens1 :: Tensor
  2
  Ind20
  (TProd
     (SField Rational)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))))
tens1 = (Rational -> SField Rational
forall a. a -> SField a
SField (Rational
2 :: Rational) SField Rational
-> ATens 2 0 0 0 3 1 AnsVarR
-> Tensor
     2
     Ind20
     (TProd
        (SField Rational)
        (Tensor
           0
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))))
forall k s v (n :: Nat).
(TIndex k, Prod s v) =>
s -> Tensor n k v -> Tensor n k (TProd s v)
&.) (ATens 2 0 0 0 3 1 AnsVarR
 -> Tensor
      2
      Ind20
      (TProd
         (SField Rational)
         (Tensor
            0
            Ind20
            (Tensor
               0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))))))
-> ATens 2 0 0 0 3 1 AnsVarR
-> Tensor
     2
     Ind20
     (TProd
        (SField Rational)
        (Tensor
           0
           Ind20
           (Tensor
              0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))))
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 2 0 AnsVarR
ans10 ATens 2 0 0 0 2 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 2 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea
        tens2 :: ATens 2 0 0 0 3 1 AnsVarR
tens2 = (Int, Int)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int) -> AbsTensor1 n1 k1 v -> AbsTensor1 n1 k1 v
tensorTrans1 (Int
0,Int
1) (ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 3 0 0 0 2 0 AnsVarR
ans14 ATens 3 0 0 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 0 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter
        tens3 :: ATens 2 0 0 0 3 1 AnsVarR
tens3 = (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
2,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 3 0 0 0 2 0 AnsVarR
ans14 ATens 3 0 0 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 0 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter
        tens4 :: ATens 2 0 0 0 3 1 AnsVarR
tens4 = (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 3 0 0 0 2 0 AnsVarR
ans14 ATens 3 0 0 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 0 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter


quadKin3 :: ATens 3 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
quadKin3 :: ATens 3 0 0 0 2 0 AnsVarR
-> ATens 2 0 0 0 2 0 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
quadKin3 ATens 3 0 0 0 2 0 AnsVarR
ans14 ATens 2 0 0 0 2 0 AnsVarR
ans10 = [Int] -> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
[Int]
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
cyclicSymATens5 [Int
0,Int
1,Int
2] (ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR)
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 3 1 AnsVarR
tens1 ATens 2 0 0 0 3 1 AnsVarR
-> ATens 2 0 0 0 3 1 AnsVarR -> ATens 2 0 0 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 2 0 0 0 3 1 AnsVarR
tens2
    where
        tens1 :: ATens 2 0 0 0 3 1 AnsVarR
tens1 = (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 2 0 0 0 2 0 AnsVarR
ans10 ATens 2 0 0 0 2 0 AnsVarR
-> Tensor
     1
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 2 0 0 0 2 0 AnsVarR)
     (Tensor
        1
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  1
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interArea
        tens2 :: ATens 2 0 0 0 3 1 AnsVarR
tens2 = (Int, Int)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
1,Int
0) (AbsTensor2
   (2 + 1)
   (0 + 1)
   Ind20
   (Tensor
      0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 2 0 0 0 3 1 AnsVarR)
-> AbsTensor2
     (2 + 1)
     (0 + 1)
     Ind20
     (Tensor
        0 Ind9 (Tensor 0 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 2 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 3 0 0 0 2 0 AnsVarR
ans14 ATens 3 0 0 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 3 0 0 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter


--principal polynomial equations

polyAns2 :: ATens 0 0 1 0 0 0 AnsVarR
polyAns2 :: ATens 0 0 1 0 0 0 AnsVarR
polyAns2 = [(([Ind20], [Ind20], [Ind9], [Ind9], [Ind3], [Ind3]), AnsVarR)]
-> ATens 0 0 1 0 0 0 AnsVarR
forall (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat) (n5 :: Nat)
       (n6 :: Nat) k1 k2 k3 v.
(KnownNat n1, KnownNat n2, KnownNat n3, KnownNat n4, KnownNat n5,
 KnownNat n6, TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
[(([k1], [k1], [k2], [k2], [k3], [k3]), v)]
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
fromListT6' ([(([Ind20], [Ind20], [Ind9], [Ind9], [Ind3], [Ind3]), AnsVarR)]
 -> ATens 0 0 1 0 0 0 AnsVarR)
-> [(([Ind20], [Ind20], [Ind9], [Ind9], [Ind3], [Ind3]), AnsVarR)]
-> ATens 0 0 1 0 0 0 AnsVarR
forall a b. (a -> b) -> a -> b
$ ((Int, SField Rational)
 -> (([Ind20], [Ind20], [Ind9], [Ind9], [Ind3], [Ind3]), AnsVarR))
-> [(Int, SField Rational)]
-> [(([Ind20], [Ind20], [Ind9], [Ind9], [Ind3], [Ind3]), AnsVarR)]
forall a b. (a -> b) -> [a] -> [b]
map (\(Int
x,SField Rational
y) -> (([], [], [Int -> Ind9
Ind9 Int
x], [], [], []),IntMap (SField Rational) -> AnsVarR
forall a. IntMap a -> AnsVar a
AnsVar (IntMap (SField Rational) -> AnsVarR)
-> IntMap (SField Rational) -> AnsVarR
forall a b. (a -> b) -> a -> b
$ Int -> SField Rational -> IntMap (SField Rational)
forall a. Int -> a -> IntMap a
I.singleton Int
1 SField Rational
y)) [(Int
0,-SField Rational
1),(Int
4,SField Rational
1),(Int
7,SField Rational
1),(Int
9,SField Rational
1)]

polyTensEqn :: ATens 1 0 1 0 0 0 AnsVarR -> ATens 0 0 1 0 1 1 AnsVarR
polyTensEqn :: ATens 1 0 1 0 0 0 AnsVarR -> ATens 0 0 1 0 1 1 AnsVarR
polyTensEqn ATens 1 0 1 0 0 0 AnsVarR
ans6 = ATens 0 0 1 0 1 1 AnsVarR
total
        where
            ans6' :: ATens 1 0 1 0 0 0 AnsVarR
ans6' = Int -> ATens 1 0 1 0 0 0 AnsVarR -> ATens 1 0 1 0 0 0 AnsVarR
forall (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat) (n5 :: Nat)
       (n6 :: Nat) k1 k2 k3 a.
Int
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 (AnsVar a)
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 (AnsVar a)
shiftLabels6 Int
1 ATens 1 0 1 0 0 0 AnsVarR
ans6
            ans2 :: ATens 0 0 1 0 0 0 AnsVarR
ans2  = ATens 0 0 1 0 0 0 AnsVarR
polyAns2
            tens1 :: ATens 0 0 1 0 1 1 AnsVarR
tens1 = (Int, Int)
-> AbsTensor2
     (0 + 1)
     (0 + 1)
     Ind20
     (Tensor
        1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 0 0 1 0 1 1 AnsVarR
forall k1 v (n1 :: Nat) (n2 :: Nat).
(TIndex k1, TAdd v) =>
(Int, Int)
-> AbsTensor2 (n1 + 1) (n2 + 1) k1 v -> AbsTensor2 n1 n2 k1 v
contrATens1 (Int
0,Int
0) (AbsTensor2
   (0 + 1)
   (0 + 1)
   Ind20
   (Tensor
      1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
 -> ATens 0 0 1 0 1 1 AnsVarR)
-> AbsTensor2
     (0 + 1)
     (0 + 1)
     Ind20
     (Tensor
        1 Ind9 (Tensor 0 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> ATens 0 0 1 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 1 0 1 0 0 0 AnsVarR
ans6' ATens 1 0 1 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 1 0 1 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     1 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInter
            tens2 :: ATens 0 0 1 0 1 1 AnsVarR
tens2 = (Int, Int)
-> AbsTensor4
     0
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 1 0 1 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   0
   0
   (1 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 1 0 1 1 AnsVarR)
-> AbsTensor4
     0
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 1 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 0 0 1 0 0 0 AnsVarR
ans2 ATens 0 0 1 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 1 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interMetric
            total :: ATens 0 0 1 0 1 1 AnsVarR
total = ATens 0 0 1 0 1 1 AnsVarR
tens1 ATens 0 0 1 0 1 1 AnsVarR
-> ATens 0 0 1 0 1 1 AnsVarR -> ATens 0 0 1 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 0 0 1 0 1 1 AnsVarR
tens2

polyDensEqn :: ATens 1 0 1 0 0 0 AnsVarR -> ATens 0 0 1 0 1 1 AnsVarR
polyDensEqn :: ATens 1 0 1 0 0 0 AnsVarR -> ATens 0 0 1 0 1 1 AnsVarR
polyDensEqn ATens 1 0 1 0 0 0 AnsVarR
ans6 = ATens 1 0 1 0 0 0 AnsVarR -> ATens 0 0 1 0 1 1 AnsVarR
polyTensEqn ATens 1 0 1 0 0 0 AnsVarR
ans6 ATens 0 0 1 0 1 1 AnsVarR
-> ATens 0 0 1 0 1 1 AnsVarR -> ATens 0 0 1 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ (ATens 0 0 1 0 0 0 AnsVarR
ans2 ATens 0 0 1 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 1 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
delta3A)
        where
            ans2 :: ATens 0 0 1 0 0 0 AnsVarR
ans2  = ATens 0 0 1 0 0 0 AnsVarR
polyAns2

--additional equations for the metric case

--the mass sub graph, i.e no derivatives

--order 0

-- | The equation is given by: \(0 = a^A K_{An}^{Bm}\eta_B + a_0 \delta^m_n \).
eqn1Met :: ATens 0 0 0 0 0 0 AnsVarR -> ATens 0 0 1 0 0 0 AnsVarR -> ATens 0 0 0 0 1 1 AnsVarR
eqn1Met :: ATens 0 0 0 0 0 0 AnsVarR
-> ATens 0 0 1 0 0 0 AnsVarR -> ATens 0 0 0 0 1 1 AnsVarR
eqn1Met ATens 0 0 0 0 0 0 AnsVarR
ans0 ATens 0 0 1 0 0 0 AnsVarR
ans2 = (Int, Int)
-> AbsTensor4
     0
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 0 0 1 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (ATens 0 0 1 0 0 0 AnsVarR
ans2 ATens 0 0 1 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 1 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInterMetric) ATens 0 0 0 0 1 1 AnsVarR
-> ATens 0 0 0 0 1 1 AnsVarR -> ATens 0 0 0 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ (ATens 0 0 0 0 0 0 AnsVarR
ans0 ATens 0 0 0 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 0 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
delta3A)

--order 1

-- | The equation is given by: \( 0 = a^A K_{An}^{Bm} + 2 a^{AB}K_{An}^{Cm}\eta_C + a^B\delta^m_n \).
eqn1AMet :: ATens 0 0 1 0 0 0 AnsVarR -> ATens 0 0 2 0 0 0 AnsVarR -> ATens 0 0 1 0 1 1 AnsVarR
eqn1AMet :: ATens 0 0 1 0 0 0 AnsVarR
-> ATens 0 0 2 0 0 0 AnsVarR -> ATens 0 0 1 0 1 1 AnsVarR
eqn1AMet ATens 0 0 1 0 0 0 AnsVarR
ans2 ATens 0 0 2 0 0 0 AnsVarR
ans4 = ATens 0 0 1 0 1 1 AnsVarR
block1 ATens 0 0 1 0 1 1 AnsVarR
-> ATens 0 0 1 0 1 1 AnsVarR -> ATens 0 0 1 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 0 0 1 0 1 1 AnsVarR
block2 ATens 0 0 1 0 1 1 AnsVarR
-> ATens 0 0 1 0 1 1 AnsVarR -> ATens 0 0 1 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 0 0 1 0 1 1 AnsVarR
TProd
  (ATens 0 0 1 0 0 0 AnsVarR)
  (Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
block3
        where
            block1 :: ATens 0 0 1 0 1 1 AnsVarR
block1 = (Int, Int)
-> AbsTensor4
     0
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 1 0 1 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   0
   0
   (1 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 1 0 1 1 AnsVarR)
-> AbsTensor4
     0
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 1 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 0 0 1 0 0 0 AnsVarR
ans2 ATens 0 0 1 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 1 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interMetric
            block2 :: ATens 0 0 1 0 1 1 AnsVarR
block2 = (Int, Int)
-> AbsTensor4
     0
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 1 0 1 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   0
   0
   (1 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 1 0 1 1 AnsVarR)
-> AbsTensor4
     0
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 1 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 0 0 2 0 0 0 AnsVarR
ans4 ATens 0 0 2 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 2 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInterMetric
            block3 :: TProd
  (ATens 0 0 1 0 0 0 AnsVarR)
  (Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
block3 = ATens 0 0 1 0 0 0 AnsVarR
ans2 ATens 0 0 1 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 1 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
delta3A

--order 2

-- | The equation is given by: \( 0 = 2 a^{AC}K_{An}^{Bm} + 2a^{AB}K_{An}^{Cm} + 6 a^{ABC}K_{An}^{Dm} \eta_D + 2a^{BC} \delta^m_n \)
eqn1ABMet :: ATens 0 0 2 0 0 0 AnsVarR -> ATens 0 0 3 0 0 0 AnsVarR -> ATens 0 0 2 0 1 1 AnsVarR
eqn1ABMet :: ATens 0 0 2 0 0 0 AnsVarR
-> ATens 0 0 3 0 0 0 AnsVarR -> ATens 0 0 2 0 1 1 AnsVarR
eqn1ABMet ATens 0 0 2 0 0 0 AnsVarR
ans4 ATens 0 0 3 0 0 0 AnsVarR
ans6 = ATens 0 0 2 0 1 1 AnsVarR
block1 ATens 0 0 2 0 1 1 AnsVarR
-> ATens 0 0 2 0 1 1 AnsVarR -> ATens 0 0 2 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 0 0 2 0 1 1 AnsVarR
block2 ATens 0 0 2 0 1 1 AnsVarR
-> ATens 0 0 2 0 1 1 AnsVarR -> ATens 0 0 2 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 0 0 2 0 1 1 AnsVarR
TProd
  (ATens 0 0 2 0 0 0 AnsVarR)
  (Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
block3
        where
            block1 :: ATens 0 0 2 0 1 1 AnsVarR
block1 = (Int, Int)
-> ATens 0 0 2 0 1 1 AnsVarR -> ATens 0 0 2 0 1 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor3 n1 n2 n3 k1 k2 v -> AbsTensor3 n1 n2 n3 k1 k2 v
symATens3 (Int
0,Int
1) (ATens 0 0 2 0 1 1 AnsVarR -> ATens 0 0 2 0 1 1 AnsVarR)
-> ATens 0 0 2 0 1 1 AnsVarR -> ATens 0 0 2 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 1 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   0
   0
   (2 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 2 0 1 1 AnsVarR)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 0 0 2 0 0 0 AnsVarR
ans4 ATens 0 0 2 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 2 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interMetric
            block2 :: ATens 0 0 2 0 1 1 AnsVarR
block2 = (Int, Int)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 1 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   0
   0
   (2 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 2 0 1 1 AnsVarR)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 0 0 3 0 0 0 AnsVarR
ans6 ATens 0 0 3 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 3 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInterMetric
            block3 :: TProd
  (ATens 0 0 2 0 0 0 AnsVarR)
  (Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
block3 = ATens 0 0 2 0 0 0 AnsVarR
ans4 ATens 0 0 2 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 2 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
delta3A


--the sub graph with 2 total derivative

--order 0

-- | The equation is given by: \( 0 = a^{AI}K_{An}^{B(m\vert }\eta_B J^{\vert pq)}_I \).
eqn3Met :: ATens 0 0 2 0 0 0 AnsVarR -> ATens 0 0 0 0 3 1 AnsVarR
eqn3Met :: ATens 0 0 2 0 0 0 AnsVarR -> ATens 0 0 0 0 3 1 AnsVarR
eqn3Met ATens 0 0 2 0 0 0 AnsVarR
ans4 = (Int, Int)
-> AbsTensor4
     0
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 0 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   0
   0
   (0 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 0 0 3 1 AnsVarR)
-> AbsTensor4
     0
     0
     (0 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 0 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     0
     0
     (1 + 1)
     (1 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor2
     0
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
1,Int
0) (AbsTensor4
   0
   0
   (1 + 1)
   (1 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> AbsTensor2
      0
      0
      Ind20
      (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))))
-> AbsTensor4
     0
     0
     (1 + 1)
     (1 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor2
     0
     0
     Ind20
     (Tensor2 1 1 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
forall a b. (a -> b) -> a -> b
$ ATens 0 0 2 0 0 0 AnsVarR
ans4 ATens 0 0 2 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0
        Ind20
        (Tensor2
           0 2 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))))
-> TProd
     (ATens 0 0 2 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0
           Ind20
           (Tensor2
              0 2 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational))))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* (Int, Int)
-> AbsTensor4
     0
     0
     (0 + 1)
     (2 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))
-> Tensor
     0
     Ind20
     (Tensor
        0
        Ind20
        (Tensor2
           0 2 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))))
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
2) (ATens 0 0 1 2 3 1 (SField Rational)
interEqn5Metric ATens 0 0 1 2 3 1 (SField Rational)
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 0 0 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 1 2 3 1 (SField Rational))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 0 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 0 0 Ind3 (SField Rational))))
etaAbs)

--order 1

-- | The equation is given by: \( 0 = a^{AI}\left [K_{An}^{Bm}\delta^J _I- 2 \delta^B_A J_I^{pm}I^J_{pn} \right ] + a^{ABJ}K_{An}^{Cm}\eta_C + a^{BJ} \delta^m_n \).
eqn1AIMet :: ATens 0 0 2 0 0 0 AnsVarR -> ATens 0 0 3 0 0 0 AnsVarR -> ATens 0 0 2 0 1 1 AnsVarR
eqn1AIMet :: ATens 0 0 2 0 0 0 AnsVarR
-> ATens 0 0 3 0 0 0 AnsVarR -> ATens 0 0 2 0 1 1 AnsVarR
eqn1AIMet ATens 0 0 2 0 0 0 AnsVarR
ans4 ATens 0 0 3 0 0 0 AnsVarR
ans6 = ATens 0 0 2 0 1 1 AnsVarR
block1 ATens 0 0 2 0 1 1 AnsVarR
-> ATens 0 0 2 0 1 1 AnsVarR -> ATens 0 0 2 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 0 0 2 0 1 1 AnsVarR
block2 ATens 0 0 2 0 1 1 AnsVarR
-> ATens 0 0 2 0 1 1 AnsVarR -> ATens 0 0 2 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 0 0 2 0 1 1 AnsVarR
TProd
  (ATens 0 0 2 0 0 0 AnsVarR)
  (Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
block3
        where
            block1 :: ATens 0 0 2 0 1 1 AnsVarR
block1 = (Int, Int)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 1 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   0
   0
   (2 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 2 0 1 1 AnsVarR)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 0 0 3 0 0 0 AnsVarR
ans6 ATens 0 0 3 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 3 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInterMetric
            block2 :: ATens 0 0 2 0 1 1 AnsVarR
block2 = (Int, Int)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 1 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   0
   0
   (2 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 2 0 1 1 AnsVarR)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     0
     0
     (3 + 1)
     (1 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor4
     0 0 3 1 Ind20 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
1,Int
1) (AbsTensor4
   0
   0
   (3 + 1)
   (1 + 1)
   Ind20
   Ind9
   (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> AbsTensor4
      0 0 3 1 Ind20 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor4
     0
     0
     (3 + 1)
     (1 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor4
     0 0 3 1 Ind20 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
forall a b. (a -> b) -> a -> b
$ ATens 0 0 2 0 0 0 AnsVarR
ans4 ATens 0 0 2 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 2 2 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 2 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 2 2 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 2 2 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interEqn3Metric
            block3 :: TProd
  (ATens 0 0 2 0 0 0 AnsVarR)
  (Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
block3 = ATens 0 0 2 0 0 0 AnsVarR
ans4 ATens 0 0 2 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 2 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
delta3A

-- | The equation is given by: \( 0 = 2a^{A(p\vert Bq}K_{An}^{C\vert m)}\eta_C + a^{AI} \left [K_{An}^{B(m\vert} 2 J_{I}^{\vert p)q} - \delta_A^BJ_I^{pm}\delta^q_n \right ] \).
eqn2AaMet :: ATens 0 0 2 0 0 0 AnsVarR -> ATens 0 0 2 0 2 0 AnsVarR -> ATens 0 0 1 0 3 1 AnsVarR
eqn2AaMet :: ATens 0 0 2 0 0 0 AnsVarR
-> ATens 0 0 2 0 2 0 AnsVarR -> ATens 0 0 1 0 3 1 AnsVarR
eqn2AaMet ATens 0 0 2 0 0 0 AnsVarR
ans4 ATens 0 0 2 0 2 0 AnsVarR
ans6 = ATens 0 0 1 0 3 1 AnsVarR
block1 ATens 0 0 1 0 3 1 AnsVarR
-> ATens 0 0 1 0 3 1 AnsVarR -> ATens 0 0 1 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 0 0 1 0 3 1 AnsVarR
block2
            where
                block1 :: ATens 0 0 1 0 3 1 AnsVarR
block1 = (Int, Int)
-> ATens 0 0 1 0 3 1 AnsVarR -> ATens 0 0 1 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
symATens5 (Int
1,Int
2) (ATens 0 0 1 0 3 1 AnsVarR -> ATens 0 0 1 0 3 1 AnsVarR)
-> ATens 0 0 1 0 3 1 AnsVarR -> ATens 0 0 1 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     0
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 1 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
1,Int
0) (AbsTensor4
   0
   0
   (1 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 1 0 3 1 AnsVarR)
-> AbsTensor4
     0
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 1 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 0 0 2 0 2 0 AnsVarR
ans6 ATens 0 0 2 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 2 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInterMetric
                block2 :: ATens 0 0 1 0 3 1 AnsVarR
block2 = (Int, Int)
-> ATens 0 0 1 0 3 1 AnsVarR -> ATens 0 0 1 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
symATens5 (Int
1,Int
2) (ATens 0 0 1 0 3 1 AnsVarR -> ATens 0 0 1 0 3 1 AnsVarR)
-> ATens 0 0 1 0 3 1 AnsVarR -> ATens 0 0 1 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     0
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 1 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   0
   0
   (1 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 1 0 3 1 AnsVarR)
-> AbsTensor4
     0
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 1 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     0
     0
     (2 + 1)
     (1 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor4
     0 0 2 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
1,Int
0) (AbsTensor4
   0
   0
   (2 + 1)
   (1 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> AbsTensor4
      0 0 2 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor4
     0
     0
     (2 + 1)
     (1 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor4
     0 0 2 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
forall a b. (a -> b) -> a -> b
$ ATens 0 0 2 0 0 0 AnsVarR
ans4 ATens 0 0 2 0 0 0 AnsVarR
-> ATens 0 0 1 2 3 1 (SField Rational)
-> TProd
     (ATens 0 0 2 0 0 0 AnsVarR) (ATens 0 0 1 2 3 1 (SField Rational))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* ATens 0 0 1 2 3 1 (SField Rational)
interEqn4Metric

-- | The equation is given by: \( 0 = a^{BAI}K_{An}^{C(m\vert}\eta_CJ_I^{\vert pq)} + a^{AI}K_{An}^{B(m \vert} J_I^{\vert pq)} \).
eqn3AMet :: ATens 0 0 2 0 0 0 AnsVarR -> ATens  0 0 3 0 0 0 AnsVarR -> ATens 0 0 1 0 3 1 AnsVarR
eqn3AMet :: ATens 0 0 2 0 0 0 AnsVarR
-> ATens 0 0 3 0 0 0 AnsVarR -> ATens 0 0 1 0 3 1 AnsVarR
eqn3AMet ATens 0 0 2 0 0 0 AnsVarR
ans4 ATens 0 0 3 0 0 0 AnsVarR
ans6 = ATens 0 0 1 0 3 1 AnsVarR
block1 ATens 0 0 1 0 3 1 AnsVarR
-> ATens 0 0 1 0 3 1 AnsVarR -> ATens 0 0 1 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 0 0 1 0 3 1 AnsVarR
block2
        where
            block1 :: ATens 0 0 1 0 3 1 AnsVarR
block1 = (Int, Int)
-> AbsTensor4
     0
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 1 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   0
   0
   (1 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 1 0 3 1 AnsVarR)
-> AbsTensor4
     0
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 1 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     0
     0
     (2 + 1)
     (1 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor4
     0 0 2 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
1,Int
0) (AbsTensor4
   0
   0
   (2 + 1)
   (1 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> AbsTensor4
      0 0 2 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor4
     0
     0
     (2 + 1)
     (1 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor4
     0 0 2 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
forall a b. (a -> b) -> a -> b
$ ATens 0 0 2 0 0 0 AnsVarR
ans4 ATens 0 0 2 0 0 0 AnsVarR
-> ATens 0 0 1 2 3 1 (SField Rational)
-> TProd
     (ATens 0 0 2 0 0 0 AnsVarR) (ATens 0 0 1 2 3 1 (SField Rational))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* ATens 0 0 1 2 3 1 (SField Rational)
interEqn5Metric
            block2 :: ATens 0 0 1 0 3 1 AnsVarR
block2 = (Int, Int)
-> AbsTensor4
     0
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 1 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
1,Int
0) (AbsTensor4
   0
   0
   (1 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 1 0 3 1 AnsVarR)
-> AbsTensor4
     0
     0
     (1 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 1 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     0
     0
     (2 + 1)
     (1 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor4
     0 0 2 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
2,Int
0) (AbsTensor4
   0
   0
   (2 + 1)
   (1 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> AbsTensor4
      0 0 2 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor4
     0
     0
     (2 + 1)
     (1 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor4
     0 0 2 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
forall a b. (a -> b) -> a -> b
$ ATens 0 0 3 0 0 0 AnsVarR
ans6 ATens 0 0 3 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0
        Ind20
        (Tensor2
           0 2 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))))
-> TProd
     (ATens 0 0 3 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0
           Ind20
           (Tensor2
              0 2 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational))))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* (Int, Int)
-> AbsTensor4
     0
     0
     (0 + 1)
     (2 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))
-> Tensor
     0
     Ind20
     (Tensor
        0
        Ind20
        (Tensor2
           0 2 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))))
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
2) (ATens 0 0 1 2 3 1 (SField Rational)
interEqn5Metric ATens 0 0 1 2 3 1 (SField Rational)
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 0 0 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 1 2 3 1 (SField Rational))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 0 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 0 0 Ind3 (SField Rational))))
etaAbs)

--order 2

-- | The equation is given by: \( 0 = a^{CAI} \left [K_{An}^{Bm}\delta^J _I- 2 \delta^B_A J_I^{pm}I^J_{pn} \right ] + 2 a^{ACBJ} K_{An}^{Dm} \eta_D + a^{CBJ} \delta ^m _n \).
eqn1ABIMet :: ATens 0 0 3 0 0 0 AnsVarR -> ATens 0 0 4 0 0 0 AnsVarR -> ATens 0 0 3 0 1 1 AnsVarR
eqn1ABIMet :: ATens 0 0 3 0 0 0 AnsVarR
-> ATens 0 0 4 0 0 0 AnsVarR -> ATens 0 0 3 0 1 1 AnsVarR
eqn1ABIMet ATens 0 0 3 0 0 0 AnsVarR
ans6 ATens 0 0 4 0 0 0 AnsVarR
ans8 = ATens 0 0 3 0 1 1 AnsVarR
block1 ATens 0 0 3 0 1 1 AnsVarR
-> ATens 0 0 3 0 1 1 AnsVarR -> ATens 0 0 3 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 0 0 3 0 1 1 AnsVarR
block2 ATens 0 0 3 0 1 1 AnsVarR
-> ATens 0 0 3 0 1 1 AnsVarR -> ATens 0 0 3 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 0 0 3 0 1 1 AnsVarR
block3  ATens 0 0 3 0 1 1 AnsVarR
-> ATens 0 0 3 0 1 1 AnsVarR -> ATens 0 0 3 0 1 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 0 0 3 0 1 1 AnsVarR
TProd
  (ATens 0 0 3 0 0 0 AnsVarR)
  (Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
block4
        where
            block1 :: ATens 0 0 3 0 1 1 AnsVarR
block1 = (Int, Int)
-> AbsTensor4
     0
     0
     (3 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 3 0 1 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   0
   0
   (3 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 3 0 1 1 AnsVarR)
-> AbsTensor4
     0
     0
     (3 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 3 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 0 0 4 0 0 0 AnsVarR
ans8 ATens 0 0 4 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 4 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInterMetric
            block2 :: ATens 0 0 3 0 1 1 AnsVarR
block2 = (Int, Int)
-> AbsTensor4
     0
     0
     (3 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 3 0 1 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
1,Int
0) (AbsTensor4
   0
   0
   (3 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 3 0 1 1 AnsVarR)
-> AbsTensor4
     0
     0
     (3 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 3 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interMetric Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> ATens 0 0 3 0 0 0 AnsVarR
-> TProd
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
     (ATens 0 0 3 0 0 0 AnsVarR)
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* ATens 0 0 3 0 0 0 AnsVarR
ans6
            block3 :: ATens 0 0 3 0 1 1 AnsVarR
block3 = (Int, Int)
-> AbsTensor4
     0
     0
     (3 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 3 0 1 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
1,Int
0) (AbsTensor4
   0
   0
   (3 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 3 0 1 1 AnsVarR)
-> AbsTensor4
     0
     0
     (3 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 3 0 1 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     0
     0
     (4 + 1)
     (1 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor4
     0 0 4 1 Ind20 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
2,Int
1) (AbsTensor4
   0
   0
   (4 + 1)
   (1 + 1)
   Ind20
   Ind9
   (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> AbsTensor4
      0 0 4 1 Ind20 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor4
     0
     0
     (4 + 1)
     (1 + 1)
     Ind20
     Ind9
     (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor4
     0 0 4 1 Ind20 Ind9 (Tensor 1 Ind3 (Tensor 1 Ind3 AnsVarR))
forall a b. (a -> b) -> a -> b
$ ATens 0 0 3 0 0 0 AnsVarR
ans6 ATens 0 0 3 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 2 2 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 3 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 2 2 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 2 2 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interEqn3Metric
            block4 :: TProd
  (ATens 0 0 3 0 0 0 AnsVarR)
  (Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
block4 = ATens 0 0 3 0 0 0 AnsVarR
ans6 ATens 0 0 3 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 3 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
delta3A

-- | The equation is given by: \( 0 = 2 a^{BCAI}K_{An}^{D(m \vert}\eta_DJ_I^{\vert pq)} + a^{CAI}K_{An}^{B(m \vert} J_I^{\vert pq)} \).
eqn3ABMet :: ATens 0 0 3 0 0 0 AnsVarR -> ATens 0 0 4 0 0 0 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
eqn3ABMet :: ATens 0 0 3 0 0 0 AnsVarR
-> ATens 0 0 4 0 0 0 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
eqn3ABMet ATens 0 0 3 0 0 0 AnsVarR
ans6 ATens 0 0 4 0 0 0 AnsVarR
ans8 = ATens 0 0 2 0 3 1 AnsVarR
block1 ATens 0 0 2 0 3 1 AnsVarR
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 0 0 2 0 3 1 AnsVarR
block2
        where
            block1 :: ATens 0 0 2 0 3 1 AnsVarR
block1 = (Int, Int)
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor3 n1 n2 n3 k1 k2 v -> AbsTensor3 n1 n2 n3 k1 k2 v
symATens3 (Int
0,Int
1) (ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR)
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
1,Int
0) (AbsTensor4
   0
   0
   (2 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 2 0 3 1 AnsVarR)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     0
     0
     (3 + 1)
     (1 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor4
     0 0 3 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
2,Int
0) (AbsTensor4
   0
   0
   (3 + 1)
   (1 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> AbsTensor4
      0 0 3 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor4
     0
     0
     (3 + 1)
     (1 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor4
     0 0 3 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
forall a b. (a -> b) -> a -> b
$ ATens 0 0 3 0 0 0 AnsVarR
ans6 ATens 0 0 3 0 0 0 AnsVarR
-> ATens 0 0 1 2 3 1 (SField Rational)
-> TProd
     (ATens 0 0 3 0 0 0 AnsVarR) (ATens 0 0 1 2 3 1 (SField Rational))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* ATens 0 0 1 2 3 1 (SField Rational)
interEqn5Metric
            block2 :: ATens 0 0 2 0 3 1 AnsVarR
block2 = (Int, Int)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
2,Int
0) (AbsTensor4
   0
   0
   (2 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 2 0 3 1 AnsVarR)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     0
     0
     (3 + 1)
     (1 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor4
     0 0 3 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
3,Int
0) (AbsTensor4
   0
   0
   (3 + 1)
   (1 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> AbsTensor4
      0 0 3 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor4
     0
     0
     (3 + 1)
     (1 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor4
     0 0 3 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
forall a b. (a -> b) -> a -> b
$ ATens 0 0 4 0 0 0 AnsVarR
ans8 ATens 0 0 4 0 0 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0
        Ind20
        (Tensor2
           0 2 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))))
-> TProd
     (ATens 0 0 4 0 0 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0
           Ind20
           (Tensor2
              0 2 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational))))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* (Int, Int)
-> AbsTensor4
     0
     0
     (0 + 1)
     (2 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))
-> Tensor
     0
     Ind20
     (Tensor
        0
        Ind20
        (Tensor2
           0 2 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 (SField Rational)))))
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
2) (ATens 0 0 1 2 3 1 (SField Rational)
interEqn5Metric ATens 0 0 1 2 3 1 (SField Rational)
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 0 0 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 1 2 3 1 (SField Rational))
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 0 0 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 0 0 Ind3 (SField Rational))))
etaAbs)

-- | The equation is given by: \( 0 = 2 a^{C A(p \vert B q} K_{An}^{D \vert m )} \eta_D + a^{CAI} \left [K_{An}^{B(m\vert} 2 J_{I}^{\vert p)q} - \delta_A^BJ_I^{pm}\delta^q_n \right ] \).
eqn2ABbMet :: ATens 0 0 2 0 2 0 AnsVarR -> ATens 0 0 3 0 0 0 AnsVarR -> ATens 0 0 3 0 2 0 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
eqn2ABbMet :: ATens 0 0 2 0 2 0 AnsVarR
-> ATens 0 0 3 0 0 0 AnsVarR
-> ATens 0 0 3 0 2 0 AnsVarR
-> ATens 0 0 2 0 3 1 AnsVarR
eqn2ABbMet ATens 0 0 2 0 2 0 AnsVarR
ans6_1 ATens 0 0 3 0 0 0 AnsVarR
ans6_2 ATens 0 0 3 0 2 0 AnsVarR
ans8 = ATens 0 0 2 0 3 1 AnsVarR
block1 ATens 0 0 2 0 3 1 AnsVarR
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 0 0 2 0 3 1 AnsVarR
block2 ATens 0 0 2 0 3 1 AnsVarR
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 0 0 2 0 3 1 AnsVarR
block3
        where
            block1 :: ATens 0 0 2 0 3 1 AnsVarR
block1 = (Int, Int)
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
symATens5 (Int
0,Int
2) (ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR)
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
1,Int
0) (AbsTensor4
   0
   0
   (2 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 2 0 3 1 AnsVarR)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 0 0 3 0 2 0 AnsVarR
ans8 ATens 0 0 3 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 3 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInterMetric
            block2' :: ATens 0 0 2 0 3 1 AnsVarR
block2' = (Int, Int)
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
0,Int
1) (ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR)
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
1,Int
0) (AbsTensor4
   0
   0
   (2 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 2 0 3 1 AnsVarR)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     0
     0
     (3 + 1)
     (1 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor4
     0 0 3 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
1,Int
1) (AbsTensor4
   0
   0
   (3 + 1)
   (1 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> AbsTensor4
      0 0 3 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor4
     0
     0
     (3 + 1)
     (1 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> AbsTensor4
     0 0 3 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
forall a b. (a -> b) -> a -> b
$ ATens 0 0 3 0 0 0 AnsVarR
ans6_2 ATens 0 0 3 0 0 0 AnsVarR
-> ATens 0 0 1 2 3 1 (SField Rational)
-> TProd
     (ATens 0 0 3 0 0 0 AnsVarR) (ATens 0 0 1 2 3 1 (SField Rational))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* ATens 0 0 1 2 3 1 (SField Rational)
interEqn4Metric
            block2 :: ATens 0 0 2 0 3 1 AnsVarR
block2 = (Int, Int)
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
symATens5 (Int
0,Int
2) ATens 0 0 2 0 3 1 AnsVarR
block2'
            block3 :: ATens 0 0 2 0 3 1 AnsVarR
block3 = (Int, Int)
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor3 n1 n2 n3 k1 k2 v -> AbsTensor3 n1 n2 n3 k1 k2 v
tensorTrans3 (Int
0,Int
1) (ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR)
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
symATens5 (Int
0,Int
2) (ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR)
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   0
   0
   (2 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 2 0 3 1 AnsVarR)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 0 0 2 0 2 0 AnsVarR
ans6_1 ATens 0 0 2 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 2 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 1 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
interMetric

-- | The equation is given by: \( 0 = 2 a^{ApCr} \left [ K_{An}^{Bm} \delta ^q_p - \delta^B_A \delta^m_n \right ] +2 a^{A Bq Cr} K_{An}^{Dm} \eta_D + 2 a^{BqCr} \delta^m_n \).
eqn1AaBbMet :: ATens 0 0 2 0 2 0 AnsVarR -> ATens 0 0 3 0 2 0 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
eqn1AaBbMet :: ATens 0 0 2 0 2 0 AnsVarR
-> ATens 0 0 3 0 2 0 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
eqn1AaBbMet ATens 0 0 2 0 2 0 AnsVarR
ans6 ATens 0 0 3 0 2 0 AnsVarR
ans8 = ATens 0 0 2 0 3 1 AnsVarR
block1 ATens 0 0 2 0 3 1 AnsVarR
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 0 0 2 0 3 1 AnsVarR
block2 ATens 0 0 2 0 3 1 AnsVarR
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 0 0 2 0 3 1 AnsVarR
block3 ATens 0 0 2 0 3 1 AnsVarR
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall k v (n :: Nat).
(TIndex k, TAdd v) =>
Tensor n k v -> Tensor n k v -> Tensor n k v
&+ ATens 0 0 2 0 3 1 AnsVarR
block4
        where
            block1 :: ATens 0 0 2 0 3 1 AnsVarR
block1 = (Int, Int)
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
1,Int
2) (ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR)
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   0
   0
   (2 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 2 0 3 1 AnsVarR)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 0 0 3 0 2 0 AnsVarR
ans8 ATens 0 0 3 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 3 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 1 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
flatInterMetric
            block2 :: ATens 0 0 2 0 3 1 AnsVarR
block2 = (Int, Int)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor4 n1 n2 (n3 + 1) (n4 + 1) k1 k2 v
-> AbsTensor4 n1 n2 n3 n4 k1 k2 v
contrATens2 (Int
0,Int
0) (AbsTensor4
   0
   0
   (2 + 1)
   (0 + 1)
   Ind20
   Ind9
   (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
 -> ATens 0 0 2 0 3 1 AnsVarR)
-> AbsTensor4
     0
     0
     (2 + 1)
     (0 + 1)
     Ind20
     Ind9
     (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
-> ATens 0 0 2 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> AbsTensor6 0 0 3 1 (3 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor4
     0 0 3 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat) (n6 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor6 n1 n2 n3 n4 (n5 + 1) (n6 + 1) k1 k2 k3 v
-> AbsTensor6 n1 n2 n3 n4 n5 n6 k1 k2 k3 v
contrATens3 (Int
0,Int
1) (AbsTensor6 0 0 3 1 (3 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
 -> AbsTensor4
      0 0 3 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR)))
-> AbsTensor6 0 0 3 1 (3 + 1) (1 + 1) Ind20 Ind9 Ind3 AnsVarR
-> AbsTensor4
     0 0 3 1 Ind20 Ind9 (Tensor 3 Ind3 (Tensor 1 Ind3 AnsVarR))
forall a b. (a -> b) -> a -> b
$ ATens 0 0 2 0 2 0 AnsVarR
ans6 ATens 0 0 2 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 2 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 2 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 2 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 1 1 Ind9 (Tensor2 2 2 Ind3 (SField Rational))))
interEqn2Metric
            block3 :: ATens 0 0 2 0 3 1 AnsVarR
block3 = (Int, Int)
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall k1 k2 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat).
(TIndex k1, TIndex k2, TAdd v) =>
(Int, Int)
-> AbsTensor3 n1 n2 n3 k1 k2 v -> AbsTensor3 n1 n2 n3 k1 k2 v
tensorTrans3 (Int
0,Int
1) (ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR)
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ (Int, Int)
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
0,Int
2) ATens 0 0 2 0 3 1 AnsVarR
block2
            block4 :: ATens 0 0 2 0 3 1 AnsVarR
block4 = (Int, Int)
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall k1 k2 k3 v (n1 :: Nat) (n2 :: Nat) (n3 :: Nat) (n4 :: Nat)
       (n5 :: Nat).
(TIndex k1, TIndex k2, TIndex k3, TAdd v) =>
(Int, Int)
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
-> AbsTensor5 n1 n2 n3 n4 n5 k1 k2 k3 v
tensorTrans5 (Int
1,Int
2) (ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR)
-> ATens 0 0 2 0 3 1 AnsVarR -> ATens 0 0 2 0 3 1 AnsVarR
forall a b. (a -> b) -> a -> b
$ ATens 0 0 2 0 2 0 AnsVarR
ans6 ATens 0 0 2 0 2 0 AnsVarR
-> Tensor
     0
     Ind20
     (Tensor
        0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
-> TProd
     (ATens 0 0 2 0 2 0 AnsVarR)
     (Tensor
        0
        Ind20
        (Tensor
           0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational)))))
forall k v v' (n :: Nat) (m :: Nat).
(TIndex k, Prod v v') =>
Tensor n k v
-> Tensor m k v' -> TProd (Tensor n k v) (Tensor m k v')
&* Tensor
  0
  Ind20
  (Tensor
     0 Ind20 (Tensor2 0 0 Ind9 (Tensor2 1 1 Ind3 (SField Rational))))
delta3A