Exercise arithmetic.exponents

Description
simplify expression (powers)

Strategy

<label name="calculatepower">
  <sequence>
    <rule name=""/>
    <let>
      <decl var="3">
        <orelse>
          <sequence>
            <let>
              <decl var="1">
                <choice>
                  <rule name="arithmetic.operation.rational.power"/>
                  <rule name="algebra.manipulation.division-denominator"/>
                  <rule name="algebra.manipulation.exponents.reciprocal-inverse"/>
                  <rule name="algebra.manipulation.exponents.divide-base"/>
                  <rule name="arithmetic.operation.rational.plus"/>
                  <rule name="arithmetic.operation.rational.minus"/>
                  <rule name="arithmetic.operation.rational.times"/>
                  <rule name="arithmetic.operation.integer.division"/>
                  <rule name="algebra.manipulation.double-negate"/>
                  <rule name="algebra.manipulation.negate-zero"/>
                  <rule name="algebra.manipulation.division-denominator"/>
                  <rule name="algebra.manipulation.division-numerator"/>
                  <rule name="algebra.manipulation.simpler-fraction"/>
                  <fail/>
                  <sequence>
                    <rule name="navigator.down"/>
                    <succeed/>
                    <let>
                      <decl var="2">
                        <choice>
                          <var var="1"/>
                          <sequence>
                            <rule name="navigator.right"/>
                            <succeed/>
                            <var var="2"/>
                          </sequence>
                        </choice>
                      </decl>
                      <var var="2"/>
                    </let>
                    <orelse>
                      <rule name="navigator.up"/>
                      <succeed/>
                    </orelse>
                  </sequence>
                </choice>
              </decl>
              <var var="1"/>
            </let>
            <var var="3"/>
          </sequence>
          <succeed/>
        </orelse>
      </decl>
      <var var="3"/>
    </let>
  </sequence>
</label>

Locations

LocationLabel
[]calculatepower
[0]...arithmetic.operation.rational.power
[1]...algebra.manipulation.division-denominator
[2]...algebra.manipulation.exponents.reciprocal-inverse
[3]...algebra.manipulation.exponents.divide-base
[4]...arithmetic.operation.rational.plus
[5]...arithmetic.operation.rational.minus
[6]...arithmetic.operation.rational.times
[7]...arithmetic.operation.integer.division
[8]...algebra.manipulation.double-negate
[9]...algebra.manipulation.negate-zero
[10]...algebra.manipulation.division-denominator
[11]...algebra.manipulation.division-numerator
[12]...algebra.manipulation.simpler-fraction