packages feed

ideas-0.7: src/Domain/Math/Examples/DWO3.hs

-----------------------------------------------------------------------------
-- Copyright 2010, Open Universiteit Nederland. This file is distributed 
-- under the terms of the GNU General Public License. For more information, 
-- see the file "LICENSE.txt", which is included in the distribution.
-----------------------------------------------------------------------------
-- |
-- Maintainer  :  alex.gerdes@ou.nl
-- Stability   :  provisional
-- Portability :  portable (depends on ghc)
--
-- Example exercises from the Digital Mathematics Environment (DWO),
-- see: http://www.fi.uu.nl/dwo/gr/frameset.html.
--
-----------------------------------------------------------------------------
module Domain.Math.Examples.DWO3 where

import Prelude hiding ((^))
import Common.Rewriting
import Domain.Math.Expr

----------------------------------------------------------
-- HAVO B applets

simplerPowers :: [[Expr]]
simplerPowers = [level1, level2, level3, level4]
 where
   a = variable "a"
   b = variable "b"
   level1 = 
      [ 4*a^3 * 5*a^2
      , 14*a^6 / (-2*a^3)
      , -21*a^7 / (3*a)
      , 5*a * (-3)*a^2 * 2*a^3
      ]
      
   level2 = 
      [ a^2 * (-2*a)^3
      , (2*a)^5 / (-4*a)^2
      , (2*a)^4 * (-3)*a^2
      , (-3*a)^4 / (9*a^2)
      ]
      
   level3 = 
      [ (a^2 * b^3)^7
      , -a^3 * (2*b)^5 * a^2
      , 3*a * (-2*b)^3 * (-a*b)^2
      , (2*a*b^3)^2 * (-3*a^2*b)^3
      ]

   level4 = 
      [ ((1/2)*a)^3 - (4*a)^2 * (1/4)*a
      , (2*a)^5 + ((1/3)*a)^2 * (-3*a)^3
      , (2*a^3)^4 - 6*a^3 * (-a^3)^3
      , (-2*a^3)^2 - 6*(3*a)^2 * (-4*a^4)
      ]

powersOfA :: [[Expr]]
powersOfA = [level1, level2, level3, level4]
  where
    a = variable "a"
    level1 =
      [ a^3 * a^(-4)
      , a^4 * (1/a^2)
      , a^(-1) * a^5
      , (1/a^3) * a 
      ]
      
    level2 =
      [ (a^(-2))^3
      , (a^(-3))^4
      , (1/a^6) * a^(-2)
      , (1/a^2) * (1/a^4)
      ]
      
    level3 = 
      [ (a^(-2))^3 * (1/a^4)
      , (1/a^3)^2
      , (a^3)^2 * (1/a)
      , (a^(-2))^(-3) * a^(-4)
      ]
      
    level4 =
      [ (a^(-1))^2 / a^3
      , (a^2)^(-3) / a^(-1)
      , ((a^(-2))^4 / (a^2)^3) * a
      , (1/a^(-3))^4 * (1/a)^3
      ]
      
nonNegExp :: [[Expr]]      
nonNegExp = [level1, level2]
  where
    a = variable "a"
    b = variable "b"
    level1 =
      [ a * b^(-2)
      , a^(-1) * b^2
      , a^(-2) * b^(-3)
      , (1/a^(-3)) * (b^(-2))^2
      ]
      
    level2 =
      [ (1/(a*b)^(-2)) * a * b^(-1)
      , (2*a)^(-1) / (4*b)^(-2)
      , (4*a*b)^(-1) * (b^2)^(-3)
      , (5*a)^(-2) * 10*b^(-1)
      ]

-- schrijf als een macht van x
powersOfX :: [[Expr]]
powersOfX = 
   [ [root x 3, 1/root x 4, sqrt (1/x), (x^2) / (root (x^2) 5)]
   , [sqrt x/(x^2), root (x/(x^3)) 3, x*root x 3, root x 3 * root (1/(x^2)) 4]
   ]
 where
   x = Var "x"
   
-- Schrijf zonder negatieve of gebroken exponenten
nonNegExp2 :: [[Expr]]
nonNegExp2 = 
   [ [ 4^(1/3), 5^(-(1/4)), 5*a^(1/2), 3*a^(-(1/4))]
   , [ 4/(a^(-1)*b^(1/3)), a^(-1)/(8*b^(-(2/3)))
     , 1/(3*a^(2/5)*b^(-1)), 3*a^(1/4)*b^(-(1/2))
     ]
   ]
 where
   a = Var "a"
   b = Var "b"
   
----------------------------------------------------------
-- VWO A/C applets

-- herleid
powers1 :: [[Expr]]
powers1 =
   [ [ 5*a^2*2*a^4, 3*a^4*9*a^2, a^5*7*a^3, 4*a^2*9*a^7
     , 2*a^4*5*a^3, 3*a*3*a^4, 2*a^7*2*a^4, 7*a^6*4*a
     ]
   , [ 5*a^4*(1/a), 8*a^4*(1/2*a^2), 2*a^6*(6/a^4), a^2*(8/a)
     , (4*a^3)/(a^5), a^7/a^3, (6*a^8)/(2*a^3), (6*a^5)/(2*a^3)
     ]
   , [ (3*a)^3, (4*a^5)^2, (6*a^3)^2, (2*a^7)^3
     , (-a^6)^5, (-2*a^2)^5, (-4*a^3)^2, (-3*a^5)^4
     ]
   , [ 6*a^5+7*a^5-4*a^9, 8*a^2-4*a^2+2*a^4, 3*a^6+6*a^6+7*a^2
     , 5*a-2*a-9*a^6, 5*a+8*a^2+4*a, 6*a^7-5*a^2+a^7
     , 8*a^6+2*a^3-2*a^6, 2*a^3-8*a^5-a^3 
     ] 
   , [ (4*a^3)^2*2*a^4, (-a^5)^3*5*a^6, 4*a^3*(5*a^6)^2
     , 6*a^7*(2*a^4)^3, a^17/((a^3)^5), a^9/((a^3)^2)
     , a^14/((a^2)^4), a^16/((a^5)^3)
     ] 
   ]
 where
   a = Var "a"
   
-- herleid
powers2 :: [[Expr]]
powers2 =
   [ [ 4*a^3*5*a^2, (14*a^6)/(-2*a^3), (-21*a^7)/(3*a)
     , 5*a*(-3*a^2)*(2*a^3)
     ]
   , [ a^2*(-2*a)^3, (2*a)^5/(-4*a)^2
     , (2*a)^4*(-3*(a^2)), (-3*a)^4/(9*a^2)
     ]
   , [ (a^2*b^3)^7, (-a)^3*(2*b)^5*a^2
     , 3*a*(-2*b)^3*(-a*b)^2, (2*a*b^3)^2*(-3*a^2*b)^3
     ] 
   , [ (2*a^3)^4-6*a^3*(-a^3)^3, (-2*a^3)^2-6*(3*a)^2*(-4*a^4)
     ]
   ]
 where
   a = Var "a"
   b = Var "b"
   
negExp1 :: [[Expr]]
negExp1 = 
   [ [ a^3/a^7, a^6/a^8, a^3/a^4, a^3/a^9, a/a^5
     , (1/a^3)/a, a/a^7, (1/a^2)/a
     ]
   , [ (1/(a^4))/a^6, (1/(a^3))/a^5, (1/a^5)/a^2, 1/(a^4)/a^3
     , 1/a^3, 1/a^5, 1/a^(-4), 1/a^(-6) 
     ]
   , [ a^8/(1/a^2), a^4/(1/a^4), (a^6)/(1/a^5), a^3/(1/a^6)
     , 1/(a^3)/a^(-2), (1/a^7)/a^(-5), (1/a^2)/a^(-9), (1/a^3)/a^(-8)
     ]
   ]
 where
   a = Var "a"
   
negExp2 :: [[Expr]]
negExp2 = 
   [ [ a^3*a^(-4), a^4*(1/a^2), a^(-1)*a^5, (1/a^3)*a]
   , [ (a^(-2))^3,(a^(-3))^4, (1/a^6)*a^(-2), (1/a^2)*(1/a^4)]
   , [ (a^(-2))^3*(1/a^4), (1/a^3)^2, (a^3)^2*(1/a), (a^(-2))^(-3)*a^(-4)]
   , [ (a^(-1))^2/a^3, (a^2)^(-3)/a^(-1), ((a^(-2))^4/(a^2)^3)*a
     , (1/a^(-3))^4*(1/a)^3
     ]
   ]
 where
   a = Var "a"
   
negExp3 :: [[Expr]]
negExp3 = 
   [ [ 4^(-2), 9^(-2), 3^(-3), 2^(-5)
     , (1/4)^(-3), (1/7)^(-2), (1/2)^(-4), (1/3)^(-4)
     ]
   , [ (3/5)^(-1), (6/7)^(-1), (5/8)^(-1), (7/9)^(-1)
     , 5*3^(-2), 7*2^(-5), 6*5^(-2), 4*7^(-2)
     ]
   , [ (1/3)/(6^(-2)), (1/2)/(8^(-2)), (1/8)/4^(-2), (1/10)/5^(-2) -- original in negExp5
     , 5*10^(-2), 4*10^(-3), 8*10^(-4), 6*10^(-3)
     ]
   ]
   
negExp4 :: [[Expr]]
negExp4 = 
   [ [ a*b^(-2), a^(-1)*b^2, a^(-2)*b^(-3), (1/a^(-3))*(b^(-2))^2]
   , [ (1/((a*b)^(-2)))*a*b^(-1), (2*a)^(-1)/(4*b)^(-2)
     , (4*a*b)^(-1)*(b^2)^(-3), (5*a)^(-2) * 10*b^(-1)
     ]
   ]
 where
   a = Var "a"
   b = Var "b"
   
negExp5 :: [[Expr]]
negExp5 = 
   [ [ 2*a^(-2)*b^2, 4*a^(-5)*b^3, 3*a^2*b^(-1), 5*a*b^(-3)
     , (1/7)*a^(-2), (1/3)*a^(-4), (1/5)*a^(-6), (1/2)*a^(-3)
     ]
   , [ 3*a^(-1), 4*a^(-4), 5*a^(-3), 2*a^(-7)
     , ((2/3)*a)^(-3), ((3/4)*a)^(-2), ((2/5)*a)^(-3), ((5/6)*a)^(-2)
     ]
   , [ (2*a)^(-3)*b^(-4), 4*a^(-2)*(3*b)^(-2), (4*a)^(-3)*7*b^(-5)
     , 9*a^(-7)*(2*b)^(-4), (a^5) / ((2*b)^(-2)), ((2*a)^(-3))/b^2
     , a^(-3)/b^(-3), (4*a)^(-2)/b^(-4)
     ] 
   ]
 where
   a = Var "a"
   b = Var "b"
   
brokenExp1, brokenExp1' :: [[Expr]]
brokenExp1 = 
  [ [ 5*a^(1/2), 7*a^(1/3), (2*a)^(1/4), (3*a)^(1/5)
    , 4*a^(2/3), 2*a^(3/4), 3*a^(2/5), 4*a^(3/5)
    ]
  , [ 6*a^(-(1/2)), 4*a^(-(1/3)), 2*(3*a)^(-(1/4)), (3*a)^(-(1/5))
    , 5*a^(-(2/3)), 7*a^(-(3/4)), 6*a^(-(2/5)), 2*a^(-(3/7))
    ]
  , [ (1/2)*a^(1/3)*b^(-(1/2)), (1/7)*a^(-(1/4))*b^(2/3), 4*a^(1/2)*b^(-(1/5))
    , 3*a^(-(3/5))*b^(1/3), (2*a)^(-(2/3)), (6*a)^(-(2/5))
    , (3*a)^(-(3/5)), (2*a)^(-(4/7))
    ]
  ]
 where
   a = Var "a"
   b = Var "b"

brokenExp1' = 
  [ [ a*sqrt a, a^2*root a 3, a^5*root a 4, a^3*root a 7
    , a*root (a^2) 3, a^3*root (a^2) 5, a^2*root (a^3) 5, a^4*root (a^5) 6
    ] 
  , [ 1/sqrt a, a/root a 3, a^2/sqrt a, 1/root a 5, 1/(a*root a 3)
    , a^2/(a*sqrt a), 1/(a^3*sqrt a), a^3/(a^2*root a 3)
    ]
  ]
 where
   a = Var "a"
   
brokenExp2 :: [[Expr]]
brokenExp2 =
   [ [ sqrt (1/a^2), root (1/a^5) 3, sqrt (1/a^5), root (1/a^3) 5
     , sqrt (a^6), root (a^6) 3, sqrt (a^4), root (a^9) 3
     ]
   , [ (1/a^3)/sqrt a, (1/a^4)/root (a^2) 3, sqrt a/(1/a^2)
     , root a 3/(1/a^5), (a^2*sqrt a)/(a*root a 3)
     , (a^3*sqrt a)/(a^2*root (a^2) 3), (a^2*root a 5)/(a^3*root a 3)
     , (a^4*root a 3)/(a^6*sqrt a)
     ]
   ]
 where
   a = Var "a"
   
brokenExp3 :: [[Expr]]
brokenExp3 =
   [ [root x 3, 1/root x 4, sqrt (1/x), x^2/root (x^2) 5]
   , [sqrt x/x^2, root (x/x^3) 3, x*root x 3, root x 3*root (1/x^2) 4]
   ]
 where
   x = Var "x"
   
----------------------------------------------------------
-- VWO B applets (hoofdstuk 4)

-- herleiden van wortelvormen
normSqrt1 :: [[Expr]]
normSqrt1 = 
   [ [ 9*sqrt 5 * 7*sqrt 3, 3*sqrt 2 * 2 * sqrt 5, 5*sqrt 2*6*sqrt 7
     , 4*sqrt 6 * 2*sqrt 7, 6*a*sqrt 3*9*sqrt 2, 5*sqrt 5 * 2 * a * sqrt 7
     , a*sqrt 6 * 7 * sqrt 5, 8*sqrt 7*a*sqrt 3
     ]
   , [ sqrt 15/(6*sqrt 3), (5*sqrt 30)/sqrt 5, (4*sqrt 10)/(5*sqrt 2)
     , (5*sqrt 21)/(2*sqrt 7), (6*a*sqrt 35)/(3*sqrt 5), (5*a*sqrt 14)/(9*sqrt 2)
     , (a*sqrt 6)/(7*sqrt 3), (3*a*sqrt 42)/(7*sqrt 7)
     ]
   , [ 5/(2*sqrt 2), 2/(5*sqrt 3), 3/(2*sqrt 5), 8/(7*sqrt 6), (2*a)/(3*sqrt 7)
     , (6*a)/(7*sqrt 10), (5*a)/(3*sqrt 11), (6*a)/(5*sqrt 13)
     ]
   , [ sqrt (2/3), sqrt (5+1/3), sqrt (1+1/2), sqrt (3+4/7), sqrt (5*a^2)
     , sqrt (7*a^2), sqrt (3*a^2), sqrt (6*a^2)
     ]
   , [ sqrt ((2/9)*a^2), sqrt ((5/16)*a^2), sqrt ((3/25)*a^2), sqrt ((7/16)*a^2)
     , ((1/3)*sqrt 2)^2, ((1/2)*sqrt 3)^2, ((2/7)*sqrt 5)^2, ((2/3)*sqrt 7)^2
     ]
   ]
 where
   a = Var "a"
   
normSqrt2 :: [[Expr]]
normSqrt2 = 
   [ [ ((1/7)*a*sqrt 2)^2, ((3/5)*a*sqrt 3)^2, ((1/3)*a*sqrt 5)^2
     , ((4/7)*a*sqrt 6)^2, sqrt 8 + sqrt 2, sqrt 2 + sqrt 18
     , sqrt 12 - sqrt 3, sqrt 7 - sqrt 28
     ]
   , [ sqrt 12 + sqrt 48, sqrt 18 - sqrt 8, sqrt 45 - sqrt 20, sqrt 80 + sqrt 45
     , sqrt (50*a^2) - sqrt (32*a^2), sqrt (75*a^2) - sqrt (12*a^2)
     , sqrt (27*a^2) + sqrt (3*a^2), sqrt (24*a^2) + sqrt (96*a^2)
     ] 
   , [ sqrt 27 + 1/sqrt 3, sqrt 24 + 5/sqrt 6, sqrt 72 - 7/sqrt 2
     , sqrt 98 - 5/sqrt 2, sqrt 24 + sqrt (1+1/2), sqrt 40 - sqrt (2+1/2)
     , sqrt 75 - sqrt (1+1/3), sqrt (1+2/3) + sqrt 60
     ]
   ]
 where
   a = Var "a"
   
normSqrt3 :: [[Expr]]
normSqrt3 = 
   [ [ (2*sqrt 7 + 7*sqrt 3)^2, (sqrt 2+6*sqrt 3)^2, (4*sqrt 3 + 3*sqrt 2)^2
     , (2*sqrt 5 + sqrt 7)^2, (3*sqrt 6-4*sqrt 5)^2, (5*sqrt 3 - sqrt 2)^2
     , (4*sqrt 6 - 2*sqrt 7)^2, (sqrt 5 - 2*sqrt 3)^2
     ]
   , [ (2*sqrt 3 - 2)^2, (5*sqrt 2-1)^2, (3+4*sqrt 3)^2, (2+3*sqrt 6)^2
     , (4*sqrt 2 + 3)*(4*sqrt 2 - 3), (sqrt 7+sqrt 3)*(sqrt 7-sqrt 3)
     , (2*sqrt 2 - sqrt 5)*(2*sqrt 2 + sqrt 5), (6-3*sqrt 3)*(6+3*sqrt 3)
     ]
   , [ (a-sqrt 3)^2, (2*sqrt 6+a)^2, (2*a+a*sqrt 5)^2, (a*sqrt 3 - 2*a*sqrt 2)^2
     , (a-sqrt 7)*(a+sqrt 7), (3*a+2*sqrt 3)*(3*a-2*sqrt 3)
     , (2*a+a*sqrt 2)*(2*a-a*sqrt 2), (3*a*sqrt 5 - a)*(3*a*sqrt 5 + a)
     ]
   , [ 4/ (sqrt 2 + 2), 3/(sqrt 5 + 1), 2 / (sqrt 3 - 3), 5/(sqrt 6-2)
     , 6/(sqrt 7+sqrt 5), 4/(2*sqrt 3 + sqrt 6), 5/(3*sqrt 2 - sqrt 3)
     , 2 / (sqrt 11 - sqrt 2)
     ]
   , [ (2*sqrt 3)/(sqrt 5 + sqrt 2), (6*sqrt 5)/(sqrt 7+sqrt 3)
     , (4*sqrt 3)/(sqrt 5 - sqrt 3), (8*sqrt 7)/(sqrt 6 - sqrt 5)
     ]
   ]
 where
   a = Var "a"
   
-- Machten herleiden
normPower1 :: [[Expr]]
normPower1 =
  [ [ 5*a^2*2*a^4, 3*a^4*9*a^2, a^5*7*a^3, 4*a^2*9*a^7, 2*a^4*5*a^3
    , 3*a*3*a^4, 2*a^7*2*a^4, 7*a^6*4*a
    ]
  , [ 5*a^4*(1/a), 8*a^4*(1/(2*a^2)), 2*a^6*(6/a^4), a^2*8/a
    , (4*a^3)/a^5, a^7/a^3, (6*a^8)/(2*a^3), (6*a^5)/(2*a^3)
    ]
  , [ (3*a)^3, (4*a^5)^2, (6*a^3)^2, (2*a^7)^3, (-(a^6))^5
    , (-2*a^2)^5, (-4*a^3)^2, (-3*a^5)^4
    ] 
  , [ 6*a^5 + 7*a^5 - 4*a^9, 8*a^2 - 4*a^2+2*a^4, 3*a^6+6*a^6+7*a^2
    , 5*a-2*a-9*a^6, 5*a+8*a^2+4*a, 6*a^7-5*a^2+a^7
    , 8*a^6+2*a^3-2*a^6, 2*a^3-8*a^5-a^3
    ]
  , [ (4*a^3)^2*2*a^4, (-a^5)^3*5*a^6, 4*a^3*(5*a^6)^2, 6*a^7*(2*a^4)^3
    , a^17/(a^3)^5, a^9/(a^3)^2, a^14/(a^2)^4, a^16/(a^5)^3
    ]
  ]
 where
   a = Var "a"
   
normPower2 :: [[Expr]]
normPower2 =
  [ -- one level only
    [ (3*a)^3+4*a^3, (2*a^2)^3 +(4*a^3)^2, (-2*a^6)^2+(a^2)^6
    , (-3*a^2)^3+(4*a^3)^2, (4*a*b^2)^2, (2*a^2*b^3)^3
    , (3*a^2*b)^2, (-3*a^2*b^2)^4 
    ]
  ]
 where
   a = Var "a"
   b = Var "b"
   
normPower3, normPower3' :: [[Expr]]
normPower3 =
  [ [ a^3/a^7, a^6/a^8, a^3/a^4, a^3/a^9, a/a^5, (1/a^3)/a, a/a^7, (1/a^2)/a 
    ]
  , [ (1/a^4)/a^6, (1/a^3)/a^5, (1/a^5)/a^2, (1/a^4)/a^3, 1/a^3, 1/a^5
    , 1/a^(-4), 1/a^(-6)
    ]
  , [ a^8/(1/a^2), a^4/(1/a^4), a^6/(1/a^5), a^3/(1/a^6), (1/a^3)/a^(-2)
    , (1/a^7)/a^(-5), (1/a^2)/a^(-9), (1/a^3)/a^(-8)
    ]
  ]
 where
   a = Var "a"
normPower3' = -- bereken zonder rekenmachine
  [ [ 4^(-2), 9^(-2), 3^(-3), 2^(-5), (1/4)^(-3), (1/7)^(-2)
    , (1/2)^(-4), (1/3)^(-4)
    ]
  , [ (3/5)^(-1), (6/7)^(-1), (5/8)^(-1), (7/9)^(-1), 5*3^(-2), 7*2^(-5)
    , 6*5^(-2), 4*7^(-2)
    ]
  ]
   
normPower4, normPower4' :: [[Expr]]
normPower4 =
  [  -- bereken zonder rekenmachine
    [ (1/3)/6^(-2), (1/2)/8^(-2), (1/8)/4^(-2), (1/10)/5^(-2)
    , 5*10^(-2), 4*10^(-3), 8*10^(-4), 6*10^(-3)
    ]
  ]
normPower4' =    -- schrijf zonder negatieve exponenten
  [ [ 2*a^(-2)*b^2, 4*a^(-5)*b^3, 3*a^2*b^(-1), 5*a*b^(-3)
    , (1/7)*a^(-2), (1/3)*a^(-4), (1/5)*a^(-6), (1/2)*a^(-3)
    ]
  , [ 3*a^(-1), 4*a^(-4), 5*a^(-3), 2*a^(-7)
    , ((2/3)*a)^(-3), ((3/4)*a)^(-2), ((2/5)*a)^(-3), ((5/6)*a)^(-2)
    ]
  , [ (2*a)^(-3)*b^(-4), 4*a^(-2)*(3*b)^(-2), (4*a)^(-3)*7*b^(-5)
    , 9*a^(-7)*(2*b)^(-4), a^5/(2*b)^(-2), (2*a)^(-3)/b^2
    , a^(-3)/b^(-3), (4*a)^(-2)/b^(-4)
    ]
  ]
 where
   a = Var "a"
   b = Var "b"
   
normPower5, normPower5' :: [[Expr]]
normPower5 =
  [ -- schrijf zonder negatieve en gebroken exponent
    [ 5*a^(1/2), 7*a^(1/3), (2*a)^(1/4), (3*a)^(1/5), (4*a)^(2/3)
    , 2*a^(3/4), (3*a)^(2/5), 4*a^(3/5)
    ]
  , [ 6*a^(-1/2), 4*a^(-1/3), 2*(3*a)^(-1/4), (3*a)^(-1/5), 5*a^(-2/3)
    , 7*a^(-3/4), 6*a^(-2/5), 2*a^(-3/7)
    ]
  , [ (1/2)*a^(1/3)*b^(-1/2), (1/7)*a^(-1/4)*b^(2/3), 4*a^(1/2)*b^(-1/5)
    , 3*a^(-3/5)*b^(1/3), (2*a)^(-2/3), (6*a)^(-2/5), (3*a)^(-3/5), (2*a)^(-4/7)
    ]
  ]
 where
   a = Var "a"
   b = Var "b"  
normPower5' =    -- schrijf als macht van a
  [ [ a*sqrt a, a^2*root a 3, a^5*root a 4, a^3*root a 7, a*root (a^2) 3
    , a^3*root (a^2) 5, a^2*root (a^3) 5, a^4*root (a^5) 6
    ]
  , [ 1/sqrt a, a/root a 3, a^2/sqrt a, 1/root a 5, 1/(a*root a 3)
    , a^2/(a*sqrt a), 1/(a^3*sqrt a), a^3/(a^2*root a 3)
    ]
  ]
 where
   a = Var "a"
   
normPower6 :: [[Expr]]
normPower6 =
  [ -- schrijf als macht van a
    [ sqrt (1/a^2), root (1/a^5) 3, sqrt (1/a^5), root (1/a^3) 5, sqrt (a^6)
    , root (a^6) 3, sqrt (a^4), root (a^9) 3
    ]
  , [ (1/a^3)/sqrt a, (1/a^4)/root (a^2) 3, sqrt a / (1/a^2), root a 3/(1/a^5)
    , (a^2*sqrt a)/(a*root a 3), (a^3*sqrt a)/(a^2*root (a^2) 3)
    , (a^2*root a 5)/(a^3*root a 3), (a^4*root a 3)/(a^6*sqrt a)
    ]
  ]
 where
   a = Var "a"