printbr(Array(1,2,3))
$\left[\begin{matrix} 1 \\ 2 \\ 3\end{matrix}\right]$
GOOD
time: 0.144000ms
stack: size: 0

    printbr(Array(1,2) + Array(3,4))
    ${\left[\begin{matrix} 1 \\ 2\end{matrix}\right]} + {\left[\begin{matrix} 3 \\ 4\end{matrix}\right]}$
    GOOD
    time: 0.109000ms
    stack: size: 0

      printbr((Array(1,2) + Array(3,4))())
      $\left[\begin{matrix} 4 \\ 6\end{matrix}\right]$
      GOOD
      time: 0.930000ms
      stack: size: 10
      • Init
      • +:Prune:combineConstants
      • +:Prune:combineConstants
      • +:Prune:Array.pruneAdd
      • Prune
      • Expand
      • Prune
      • Factor
      • Prune
      • Tidy

      simplifyAssertEq((Array(1,2) + Array(3,4))(), Array(4,6))
      ${\left[\begin{matrix} 4 \\ 6\end{matrix}\right]} = {\left[\begin{matrix} 4 \\ 6\end{matrix}\right]}$
      GOOD
      time: 1.212000ms
      stack: size: 7
      • Init
      • Prune
      • Expand
      • Prune
      • Factor
      • Prune
      • Tidy

      printbr(Matrix({1,2},{3,4}))
      $\left[\begin{array}{cc} 1& 2\\ 3& 4\end{array}\right]$
      GOOD
      time: 0.160000ms
      stack: size: 0

        printbr(Matrix({1,2},{3,4}):inverse())
        $\left[\begin{array}{cc} -{2}& 1\\ \frac{3}{2}& -{\frac{1}{2}}\end{array}\right]$ $\left[\begin{array}{cc} 1& 0\\ 0& 1\end{array}\right]$
        GOOD
        time: 8.593000ms
        stack: size: 33
        • Init
        • *:Prune:apply
        • unm:Prune:doubleNegative
        • *:Prune:apply
        • unm:Prune:doubleNegative
        • *:Prune:apply
        • unm:Prune:doubleNegative
        • /:Prune:xOverMinusOne
        • *:Prune:apply
        • unm:Prune:doubleNegative
        • +:Prune:combineConstants
        • ^:Prune:xToTheZero
        • *:Prune:apply
        • /:Prune:divToPowSub
        • *:Prune:factorDenominators
        • *:Prune:apply
        • /:Prune:xOverX
        • *:Prune:factorDenominators
        • *:Prune:matrixMul
        • /:Prune:xOverMinusOne
        • *:Prune:apply
        • *:Prune:factorDenominators
        • *:Prune:matrixMul
        • /:Prune:matrixScalar
        • Prune
        • Expand
        • Prune
        • Factor
        • Prune
        • Constant:Tidy:apply
        • Constant:Tidy:apply
        • /:Tidy:apply
        • Tidy

        simplifyAssertEq(Matrix({1,2},{3,4}):inverse(), Matrix({-2,1},{frac(3,2),-frac(1,2)}))
        ${\left[\begin{array}{cc} -{2}& 1\\ \frac{3}{2}& -{\frac{1}{2}}\end{array}\right]} = {\left[\begin{array}{cc} -2& 1\\ \frac{3}{2}& -{\frac{1}{2}}\end{array}\right]}$
        GOOD
        time: 6.830000ms
        stack: size: 12
        • Init
        • *:Prune:apply
        • *:Prune:factorDenominators
        • unm:Prune:doubleNegative
        • Prune
        • Expand
        • Prune
        • Factor
        • Prune
        • Constant:Tidy:apply
        • /:Tidy:apply
        • Tidy

        printbr(Matrix({a,b},{c,d}))
        $\left[\begin{array}{cc} a& b\\ c& d\end{array}\right]$
        GOOD
        time: 0.085000ms
        stack: size: 0

          printbr(Matrix({a,b},{c,d}):inverse())
          $\left[\begin{array}{cc} \frac{d}{{{{a}} {{d}}}{-{{{b}} {{c}}}}}& -{\frac{b}{{{{a}} {{d}}}{-{{{b}} {{c}}}}}}\\ -{\frac{c}{{{{a}} {{d}}}{-{{{b}} {{c}}}}}}& \frac{a}{{{{a}} {{d}}}{-{{{b}} {{c}}}}}\end{array}\right]$ $\left[\begin{array}{cc} 1& 0\\ 0& 1\end{array}\right]$
          GOOD
          time: 23.615000ms
          stack: size: 111
          • Init
          • unm:Prune:doubleNegative
          • unm:Prune:doubleNegative
          • unm:Prune:doubleNegative
          • *:Prune:apply
          • *:Prune:factorDenominators
          • *:Prune:factorDenominators
          • *:Prune:matrixMul
          • *:Prune:factorDenominators
          • *:Prune:apply
          • *:Prune:factorDenominators
          • *:Prune:matrixMul
          • /:Prune:matrixScalar
          • Prune
          • Expand
          • Prune
          • +:Factor:apply
          • /:Factor:polydiv
          • +:Factor:apply
          • /:Factor:polydiv
          • +:Factor:apply
          • /:Factor:polydiv
          • +:Factor:apply
          • /:Factor:polydiv
          • Factor
          • unm:Prune:doubleNegative
          • +:Prune:combineConstants
          • ^:Prune:xToTheZero
          • *:Tidy:apply
          • Constant:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • unm:Prune:doubleNegative
          • *:Prune:apply
          • /:Prune:divToPowSub
          • *:Prune:factorDenominators
          • unm:Prune:doubleNegative
          • *:Prune:apply
          • /:Prune:divMulNegToNegDivMul
          • *:Prune:flatten
          • unm:Prune:doubleNegative
          • +:Prune:combineConstants
          • ^:Prune:xToTheZero
          • *:Tidy:apply
          • Constant:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • unm:Prune:doubleNegative
          • *:Prune:apply
          • /:Prune:divToPowSub
          • *:Prune:factorDenominators
          • unm:Prune:doubleNegative
          • *:Prune:apply
          • /:Prune:divMulNegToNegDivMul
          • *:Prune:flatten
          • unm:Prune:doubleNegative
          • +:Prune:combineConstants
          • ^:Prune:xToTheZero
          • *:Tidy:apply
          • Constant:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • unm:Prune:doubleNegative
          • *:Prune:apply
          • /:Prune:divToPowSub
          • *:Prune:factorDenominators
          • unm:Prune:doubleNegative
          • +:Prune:combineConstants
          • ^:Prune:xToTheZero
          • *:Tidy:apply
          • Constant:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • unm:Prune:doubleNegative
          • *:Prune:apply
          • /:Prune:divToPowSub
          • *:Prune:factorDenominators
          • Prune
          • *:Tidy:apply
          • Constant:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • Constant:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • Constant:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • /:Tidy:apply
          • Constant:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • Constant:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • /:Tidy:apply
          • *:Tidy:apply
          • Constant:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • Tidy

          simplifyAssertEq(Matrix({a,b},{c,d}):inverse(), Matrix( {frac(d, a*d-b*c), frac(-b, a*d-b*c)}, {frac(-c, a*d-b*c), frac(a, a*d-b*c)} ))
          ${\left[\begin{array}{cc} \frac{d}{{{{a}} {{d}}}{-{{{b}} {{c}}}}}& -{\frac{b}{{{{a}} {{d}}}{-{{{b}} {{c}}}}}}\\ -{\frac{c}{{{{a}} {{d}}}{-{{{b}} {{c}}}}}}& \frac{a}{{{{a}} {{d}}}{-{{{b}} {{c}}}}}\end{array}\right]} = {\left[\begin{array}{cc} \frac{d}{{{{a}} {{d}}}{-{{{b}} {{c}}}}}& \frac{-{b}}{{{{a}} {{d}}}{-{{{b}} {{c}}}}}\\ \frac{-{c}}{{{{a}} {{d}}}{-{{{b}} {{c}}}}}& \frac{a}{{{{a}} {{d}}}{-{{{b}} {{c}}}}}\end{array}\right]}$
          GOOD
          time: 31.695000ms
          stack: size: 26
          • Init
          • unm:Prune:doubleNegative
          • Prune
          • Expand
          • Prune
          • +:Factor:apply
          • /:Factor:polydiv
          • Factor
          • unm:Prune:doubleNegative
          • +:Prune:combineConstants
          • ^:Prune:xToTheZero
          • *:Tidy:apply
          • Constant:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • unm:Prune:doubleNegative
          • *:Prune:apply
          • /:Prune:divToPowSub
          • *:Prune:factorDenominators
          • Prune
          • Constant:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • *:Tidy:apply
          • Tidy

          printbr(Matrix({1,0,0,t_x},{0,1,0,t_y},{0,0,1,t_z},{0,0,0,1}))
          $\left[\begin{array}{cccc} 1& 0& 0& {t_x}\\ 0& 1& 0& {t_y}\\ 0& 0& 1& {t_z}\\ 0& 0& 0& 1\end{array}\right]$
          GOOD
          time: 0.095000ms
          stack: size: 0

            printbr(Matrix({1,0,0,t_x},{0,1,0,t_y},{0,0,1,t_z},{0,0,0,1}):inverse())
            $\left[\begin{array}{cccc} 1& 0& 0& -{{t_x}}\\ 0& 1& 0& -{{t_y}}\\ 0& 0& 1& -{{t_z}}\\ 0& 0& 0& 1\end{array}\right]$ $\left[\begin{array}{cccc} 1& 0& 0& 0\\ 0& 1& 0& 0\\ 0& 0& 1& 0\\ 0& 0& 0& 1\end{array}\right]$
            GOOD
            time: 4.792000ms
            stack: size: 7
            • Init
            • Prune
            • Expand
            • Prune
            • Factor
            • Prune
            • Tidy

            simplifyAssertEq(Matrix({1,0,0,t_x},{0,1,0,t_y},{0,0,1,t_z},{0,0,0,1}):inverse(), Matrix({1,0,0,-t_x},{0,1,0,-t_y},{0,0,1,-t_z},{0,0,0,1}))
            ${\left[\begin{array}{cccc} 1& 0& 0& -{{t_x}}\\ 0& 1& 0& -{{t_y}}\\ 0& 0& 1& -{{t_z}}\\ 0& 0& 0& 1\end{array}\right]} = {\left[\begin{array}{cccc} 1& 0& 0& -{{t_x}}\\ 0& 1& 0& -{{t_y}}\\ 0& 0& 1& -{{t_z}}\\ 0& 0& 0& 1\end{array}\right]}$
            GOOD
            time: 4.880000ms
            stack: size: 7
            • Init
            • Prune
            • Expand
            • Prune
            • Factor
            • Prune
            • Tidy

            printbr(m + mInv)
            ${\left[\begin{array}{cc} \cos\left( \theta\right)& -{\sin\left( \theta\right)}\\ \sin\left( \theta\right)& \cos\left( \theta\right)\end{array}\right]} + {\left[\begin{array}{cc} \cos\left( \theta\right)& \sin\left( \theta\right)\\ -{\sin\left( \theta\right)}& \cos\left( \theta\right)\end{array}\right]}$
            GOOD
            time: 0.246000ms
            stack: size: 0

              printbr((m + mInv)())
              $\left[\begin{array}{cc} {{2}} {{\cos\left( \theta\right)}}& 0\\ 0& {{2}} {{\cos\left( \theta\right)}}\end{array}\right]$
              GOOD
              time: 2.658000ms
              stack: size: 20
              • Init
              • unm:Prune:doubleNegative
              • unm:Prune:doubleNegative
              • +:Prune:flattenAddMul
              • *:Prune:apply
              • +:Prune:flattenAddMul
              • +:Prune:Array.pruneAdd
              • *:Prune:apply
              • +:Prune:flattenAddMul
              • +:Prune:flattenAddMul
              • +:Prune:Array.pruneAdd
              • +:Prune:Array.pruneAdd
              • Prune
              • Expand
              • Prune
              • Factor
              • Prune
              • *:Tidy:apply
              • *:Tidy:apply
              • Tidy

              printbr(m * mInv)
              ${{\left[\begin{array}{cc} \cos\left( \theta\right)& -{\sin\left( \theta\right)}\\ \sin\left( \theta\right)& \cos\left( \theta\right)\end{array}\right]}} {{\left[\begin{array}{cc} \cos\left( \theta\right)& \sin\left( \theta\right)\\ -{\sin\left( \theta\right)}& \cos\left( \theta\right)\end{array}\right]}}$
              GOOD
              time: 0.300000ms
              stack: size: 0

                printbr((m * mInv)())
                $\left[\begin{array}{cc} {{\cos\left( \theta\right)}^{2}} + {{\sin\left( \theta\right)}^{2}}& 0\\ 0& {{\cos\left( \theta\right)}^{2}} + {{\sin\left( \theta\right)}^{2}}\end{array}\right]$
                GOOD
                time: 3.034000ms
                stack: size: 34
                • Init
                • unm:Prune:doubleNegative
                • unm:Prune:doubleNegative
                • +:Prune:combineConstants
                • *:Prune:combinePows
                • +:Prune:combineConstants
                • *:Prune:combinePows
                • *:Prune:apply
                • +:Prune:combineMultipliedConstants
                • *:Prune:apply
                • +:Prune:combineMultipliedConstants
                • +:Prune:combineConstants
                • *:Prune:combinePows
                • +:Prune:combineConstants
                • *:Prune:combinePows
                • *:Prune:matrixMul
                • Prune
                • ^:Expand:integerPower
                • ^:Expand:integerPower
                • ^:Expand:integerPower
                • ^:Expand:integerPower
                • Expand
                • +:Prune:combineConstants
                • *:Prune:combinePows
                • +:Prune:combineConstants
                • *:Prune:combinePows
                • +:Prune:combineConstants
                • *:Prune:combinePows
                • +:Prune:combineConstants
                • *:Prune:combinePows
                • Prune
                • Factor
                • Prune
                • Tidy

                simplifyAssertEq( (m*mInv)(), Matrix({1,0},{0,1}) )
                ${\left[\begin{array}{cc} {{\cos\left( \theta\right)}^{2}} + {{\sin\left( \theta\right)}^{2}}& 0\\ 0& {{\cos\left( \theta\right)}^{2}} + {{\sin\left( \theta\right)}^{2}}\end{array}\right]} = {\left[\begin{array}{cc} 1& 0\\ 0& 1\end{array}\right]}$
                GOOD
                time: 6.022000ms
                stack: size: 7
                • Init
                • Prune
                • Expand
                • Prune
                • Factor
                • Prune
                • Tidy

                printbr(m*m)
                ${{\left[\begin{array}{cc} \cos\left( \theta\right)& -{\sin\left( \theta\right)}\\ \sin\left( \theta\right)& \cos\left( \theta\right)\end{array}\right]}} {{\left[\begin{array}{cc} \cos\left( \theta\right)& -{\sin\left( \theta\right)}\\ \sin\left( \theta\right)& \cos\left( \theta\right)\end{array}\right]}}$
                GOOD
                time: 0.394000ms
                stack: size: 0

                  printbr((m*m)())
                  $\left[\begin{array}{cc} {{\left({{\cos\left( \theta\right)} + {\sin\left( \theta\right)}}\right)}} {{\left({{\cos\left( \theta\right)}{-{\sin\left( \theta\right)}}}\right)}}& -{{{2}} {{\cos\left( \theta\right)}} {{\sin\left( \theta\right)}}}\\ {{2}} {{\cos\left( \theta\right)}} {{\sin\left( \theta\right)}}& {{\left({{\cos\left( \theta\right)} + {\sin\left( \theta\right)}}\right)}} {{\left({{\cos\left( \theta\right)}{-{\sin\left( \theta\right)}}}\right)}}\end{array}\right]$
                  GOOD
                  time: 14.888000ms
                  stack: size: 52
                  • Init
                  • unm:Prune:doubleNegative
                  • unm:Prune:doubleNegative
                  • +:Prune:combineConstants
                  • *:Prune:combinePows
                  • +:Prune:combineConstants
                  • *:Prune:combinePows
                  • +:Prune:combineMultipliedConstants
                  • +:Prune:combineMultipliedConstants
                  • +:Prune:combineConstants
                  • *:Prune:combinePows
                  • +:Prune:combineConstants
                  • *:Prune:combinePows
                  • *:Prune:matrixMul
                  • Prune
                  • ^:Expand:integerPower
                  • ^:Expand:integerPower
                  • ^:Expand:integerPower
                  • ^:Expand:integerPower
                  • Expand
                  • +:Prune:combineConstants
                  • *:Prune:combinePows
                  • +:Prune:combineConstants
                  • *:Prune:combinePows
                  • +:Prune:combineConstants
                  • *:Prune:combinePows
                  • +:Prune:combineConstants
                  • *:Prune:combinePows
                  • Prune
                  • /:Prune:xOverX
                  • ^:Prune:xToTheOne
                  • /:Prune:xOverX
                  • ^:Prune:xToTheOne
                  • /:Prune:xOverX
                  • ^:Prune:xToTheOne
                  • /:Prune:xOverX
                  • ^:Prune:xToTheOne
                  • unm:Prune:doubleNegative
                  • +:Factor:apply
                  • +:Factor:apply
                  • +:Factor:apply
                  • Factor
                  • Prune
                  • Expand
                  • Prune
                  • Factor
                  • Prune
                  • Expand
                  • Prune
                  • Factor
                  • Prune
                  • Tidy

                  printbr(m1)
                  $\left[\begin{array}{cc} 1& a\\ 0& 1\end{array}\right]$
                  GOOD
                  time: 0.042000ms
                  stack: size: 0

                    printbr(m2)
                    $\left[\begin{array}{cc} 1& 0\\ b& 1\end{array}\right]$
                    GOOD
                    time: 0.088000ms
                    stack: size: 0

                      printbr((m1*m2):eq((m1*m2)()))
                      ${{{\left[\begin{array}{cc} 1& a\\ 0& 1\end{array}\right]}} {{\left[\begin{array}{cc} 1& 0\\ b& 1\end{array}\right]}}} = {\left[\begin{array}{cc} {1} + {{{a}} {{b}}}& a\\ b& 1\end{array}\right]}$
                      GOOD
                      time: 0.793000ms
                      stack: size: 12
                      • Init
                      • *:Prune:apply
                      • +:Prune:combineConstants
                      • *:Prune:matrixMul
                      • Prune
                      • Expand
                      • Prune
                      • +:Factor:apply
                      • Factor
                      • Prune
                      • *:Tidy:apply
                      • Tidy

                      printbr((m2*m1):eq((m2*m1)()))
                      ${{{\left[\begin{array}{cc} 1& 0\\ b& 1\end{array}\right]}} {{\left[\begin{array}{cc} 1& a\\ 0& 1\end{array}\right]}}} = {\left[\begin{array}{cc} 1& a\\ b& {1} + {{{a}} {{b}}}\end{array}\right]}$
                      GOOD
                      time: 0.981000ms
                      stack: size: 13
                      • Init
                      • *:Prune:apply
                      • +:Prune:combineConstants
                      • +:Prune:combineConstants
                      • *:Prune:matrixMul
                      • Prune
                      • Expand
                      • Prune
                      • +:Factor:apply
                      • Factor
                      • Prune
                      • *:Tidy:apply
                      • Tidy

                      printbr(m1:eq(m2))
                      ${\left[\begin{array}{cc} 1& a\\ 0& 1\end{array}\right]} = {\left[\begin{array}{cc} 1& 0\\ b& 1\end{array}\right]}$
                      GOOD
                      time: 0.047000ms
                      stack: size: 0

                        simplifyAssertNe(m1, m2)
                        ${\left[\begin{array}{cc} 1& a\\ 0& 1\end{array}\right]} \ne {\left[\begin{array}{cc} 1& 0\\ b& 1\end{array}\right]}$
                        GOOD
                        time: 0.244000ms
                        stack: size: 7
                        • Init
                        • Prune
                        • Expand
                        • Prune
                        • Factor
                        • Prune
                        • Tidy

                        printbr((m1*m2):eq(m2*m1))
                        ${{{\left[\begin{array}{cc} 1& a\\ 0& 1\end{array}\right]}} {{\left[\begin{array}{cc} 1& 0\\ b& 1\end{array}\right]}}} = {{{\left[\begin{array}{cc} 1& 0\\ b& 1\end{array}\right]}} {{\left[\begin{array}{cc} 1& a\\ 0& 1\end{array}\right]}}}$
                        GOOD
                        time: 0.229000ms
                        stack: size: 0

                          simplifyAssertNe(m1*m2, m2*m1)
                          ${{{\left[\begin{array}{cc} 1& a\\ 0& 1\end{array}\right]}} {{\left[\begin{array}{cc} 1& 0\\ b& 1\end{array}\right]}}} \ne {{{\left[\begin{array}{cc} 1& 0\\ b& 1\end{array}\right]}} {{\left[\begin{array}{cc} 1& a\\ 0& 1\end{array}\right]}}}$
                          GOOD
                          time: 1.565000ms
                          stack: size: 13
                          • Init
                          • *:Prune:apply
                          • +:Prune:combineConstants
                          • +:Prune:combineConstants
                          • *:Prune:matrixMul
                          • Prune
                          • Expand
                          • Prune
                          • +:Factor:apply
                          • Factor
                          • Prune
                          • *:Tidy:apply
                          • Tidy

                          printbr((m1*m2):eq(m1*m2))
                          ${{{\left[\begin{array}{cc} 1& a\\ 0& 1\end{array}\right]}} {{\left[\begin{array}{cc} 1& 0\\ b& 1\end{array}\right]}}} = {{{\left[\begin{array}{cc} 1& a\\ 0& 1\end{array}\right]}} {{\left[\begin{array}{cc} 1& 0\\ b& 1\end{array}\right]}}}$
                          GOOD
                          time: 0.091000ms
                          stack: size: 0

                            simplifyAssertEq(m1*m2, m1*m2)
                            ${{{\left[\begin{array}{cc} 1& a\\ 0& 1\end{array}\right]}} {{\left[\begin{array}{cc} 1& 0\\ b& 1\end{array}\right]}}} = {{{\left[\begin{array}{cc} 1& a\\ 0& 1\end{array}\right]}} {{\left[\begin{array}{cc} 1& 0\\ b& 1\end{array}\right]}}}$
                            GOOD
                            time: 1.444000ms
                            stack: size: 12
                            • Init
                            • *:Prune:apply
                            • +:Prune:combineConstants
                            • *:Prune:matrixMul
                            • Prune
                            • Expand
                            • Prune
                            • +:Factor:apply
                            • Factor
                            • Prune
                            • *:Tidy:apply
                            • Tidy

                            printbr((m1*m2):eq(m2*m1)())
                            ${\left[\begin{array}{cc} {1} + {{{a}} {{b}}}& a\\ b& 1\end{array}\right]} = {\left[\begin{array}{cc} 1& a\\ b& {1} + {{{a}} {{b}}}\end{array}\right]}$
                            GOOD
                            time: 1.579000ms
                            stack: size: 13
                            • Init
                            • *:Prune:apply
                            • +:Prune:combineConstants
                            • +:Prune:combineConstants
                            • *:Prune:matrixMul
                            • Prune
                            • Expand
                            • Prune
                            • +:Factor:apply
                            • Factor
                            • Prune
                            • *:Tidy:apply
                            • Tidy

                            simplifyAssertNe((m1*m2)(), (m2*m1)())
                            ${\left[\begin{array}{cc} {1} + {{{a}} {{b}}}& a\\ b& 1\end{array}\right]} \ne {\left[\begin{array}{cc} 1& a\\ b& {1} + {{{a}} {{b}}}\end{array}\right]}$
                            GOOD
                            time: 2.057000ms
                            stack: size: 9
                            • Init
                            • Prune
                            • Expand
                            • Prune
                            • +:Factor:apply
                            • Factor
                            • Prune
                            • *:Tidy:apply
                            • Tidy

                            printbr((Matrix({a},{b}) + Matrix({c},{d})) / t)
                            ${\frac{1}{t}}{\left({{\left[\begin{array}{c} a\\ b\end{array}\right]} + {\left[\begin{array}{c} c\\ d\end{array}\right]}}\right)}$
                            GOOD
                            time: 0.077000ms
                            stack: size: 0

                              printbr(((Matrix({a},{b}) + Matrix({c},{d})) / t)())
                              $\left[\begin{array}{c} {\frac{1}{t}}{\left({{a} + {c}}\right)}\\ {\frac{1}{t}}{\left({{b} + {d}}\right)}\end{array}\right]$
                              GOOD
                              time: 3.945000ms
                              stack: size: 33
                              • Init
                              • +:Prune:Array.pruneAdd
                              • +:Prune:Array.pruneAdd
                              • +:Prune:Array.pruneAdd
                              • *:Prune:apply
                              • *:Prune:factorDenominators
                              • *:Prune:matrixMul
                              • *:Prune:apply
                              • *:Prune:factorDenominators
                              • *:Prune:matrixMul
                              • /:Prune:matrixScalar
                              • Prune
                              • Expand
                              • Prune
                              • +:Factor:apply
                              • /:Factor:polydiv
                              • +:Factor:apply
                              • /:Factor:polydiv
                              • Factor
                              • unm:Prune:doubleNegative
                              • +:Prune:combineConstants
                              • ^:Prune:xToTheZero
                              • *:Prune:apply
                              • /:Prune:divToPowSub
                              • *:Prune:factorDenominators
                              • unm:Prune:doubleNegative
                              • +:Prune:combineConstants
                              • ^:Prune:xToTheZero
                              • *:Prune:apply
                              • /:Prune:divToPowSub
                              • *:Prune:factorDenominators
                              • Prune
                              • Tidy

                              simplifyAssertEq( ((Matrix({a},{b}) + Matrix({c},{d})) / t)(), Matrix({frac(a+c,t)}, {frac(b+d,t)}) )
                              ${\left[\begin{array}{c} {\frac{1}{t}}{\left({{a} + {c}}\right)}\\ {\frac{1}{t}}{\left({{b} + {d}}\right)}\end{array}\right]} = {\left[\begin{array}{c} {\frac{1}{t}}{\left({{a} + {c}}\right)}\\ {\frac{1}{t}}{\left({{b} + {d}}\right)}\end{array}\right]}$
                              GOOD
                              time: 6.131000ms
                              stack: size: 15
                              • Init
                              • Prune
                              • Expand
                              • Prune
                              • +:Factor:apply
                              • /:Factor:polydiv
                              • Factor
                              • unm:Prune:doubleNegative
                              • +:Prune:combineConstants
                              • ^:Prune:xToTheZero
                              • *:Prune:apply
                              • /:Prune:divToPowSub
                              • *:Prune:factorDenominators
                              • Prune
                              • Tidy

                              printbr(Matrix({1,2},{3,4}):inverse(Matrix({5},{6})))
                              $\left[\begin{array}{c} -{4}\\ \frac{9}{2}\end{array}\right]$ $\left[\begin{array}{cc} 1& 0\\ 0& 1\end{array}\right]$
                              GOOD
                              time: 2.215000ms
                              stack: size: 7
                              • Init
                              • Prune
                              • Expand
                              • Prune
                              • Factor
                              • Prune
                              • Tidy

                              printbr((Matrix({1,2},{3,4})*Matrix({1,2},{3,4}):inverse(Matrix({5},{6})))())
                              $\left[\begin{array}{c} 5\\ 6\end{array}\right]$
                              GOOD
                              time: 3.287000ms
                              stack: size: 27
                              • Init
                              • *:Prune:apply
                              • unm:Prune:doubleNegative
                              • *:Prune:apply
                              • unm:Prune:doubleNegative
                              • +:Prune:combineConstants
                              • ^:Prune:xToTheZero
                              • *:Prune:apply
                              • /:Prune:divToPowSub
                              • *:Prune:factorDenominators
                              • +:Prune:combineConstants
                              • *:Prune:apply
                              • *:Prune:apply
                              • unm:Prune:doubleNegative
                              • +:Prune:combineConstants
                              • ^:Prune:xToTheZero
                              • *:Prune:apply
                              • /:Prune:divToPowSub
                              • *:Prune:factorDenominators
                              • +:Prune:combineConstants
                              • *:Prune:matrixMul
                              • Prune
                              • Expand
                              • Prune
                              • Factor
                              • Prune
                              • Tidy

                              simplifyAssertEq( (Matrix({1,2},{3,4})*Matrix({1,2},{3,4}):inverse(Matrix({5},{6})))(), Matrix({5},{6}) )
                              ${\left[\begin{array}{c} 5\\ 6\end{array}\right]} = {\left[\begin{array}{c} 5\\ 6\end{array}\right]}$
                              GOOD
                              time: 3.498000ms
                              stack: size: 7
                              • Init
                              • Prune
                              • Expand
                              • Prune
                              • Factor
                              • Prune
                              • Tidy