Exercise algebra.manipulation.exponential.equation

Description
solve exponential equation algebraically

Strategy

<label name="exponentialequation">
  <sequence>
    <rule name=""/>
    <let>
      <decl var="0">
        <orelse>
          <sequence>
            <choice>
              <rule name="algebra.equations.coverup.plus"/>
              <rule name="algebra.equations.coverup.minus-left"/>
              <rule name="algebra.equations.coverup.minus-right"/>
              <rule name="algebra.equations.coverup.negate"/>
              <rule name="algebra.equations.coverup.times"/>
              <rule name="algebra.equations.coverup.numerator"/>
              <rule name="algebra.equations.coverup.denominator"/>
              <rule name="algebra.equations.coverup.sqrt"/>
              <fail/>
            </choice>
            <var var="0"/>
          </sequence>
          <succeed/>
        </orelse>
      </decl>
      <var var="0"/>
    </let>
    <let>
      <decl var="4">
        <orelse>
          <sequence>
            <let>
              <decl var="2">
                <choice>
                  <rule name="algebra.manipulation.exponents.factor-as-power"/>
                  <sequence>
                    <rule name="navigator.down"/>
                    <let>
                      <decl var="0">
                        <orelse>
                          <rule name="check"/>
                          <sequence>
                            <rule name="navigator.right"/>
                            <var var="0"/>
                          </sequence>
                        </orelse>
                      </decl>
                      <var var="0"/>
                    </let>
                    <let>
                      <decl var="3">
                        <choice>
                          <var var="2"/>
                          <sequence>
                            <rule name="navigator.right"/>
                            <let>
                              <decl var="0">
                                <orelse>
                                  <rule name="check"/>
                                  <sequence>
                                    <rule name="navigator.right"/>
                                    <var var="0"/>
                                  </sequence>
                                </orelse>
                              </decl>
                              <var var="0"/>
                            </let>
                            <var var="3"/>
                          </sequence>
                        </choice>
                      </decl>
                      <var var="3"/>
                    </let>
                    <orelse>
                      <rule name="navigator.up"/>
                      <succeed/>
                    </orelse>
                  </sequence>
                </choice>
              </decl>
              <var var="2"/>
            </let>
            <var var="4"/>
          </sequence>
          <succeed/>
        </orelse>
      </decl>
      <var var="4"/>
    </let>
    <let>
      <decl var="4">
        <orelse>
          <sequence>
            <let>
              <decl var="2">
                <choice>
                  <rule name="algebra.manipulation.exponents.reciprocal"/>
                  <sequence>
                    <rule name="navigator.down"/>
                    <let>
                      <decl var="0">
                        <orelse>
                          <rule name="check"/>
                          <sequence>
                            <rule name="navigator.right"/>
                            <var var="0"/>
                          </sequence>
                        </orelse>
                      </decl>
                      <var var="0"/>
                    </let>
                    <let>
                      <decl var="3">
                        <choice>
                          <var var="2"/>
                          <sequence>
                            <rule name="navigator.right"/>
                            <let>
                              <decl var="0">
                                <orelse>
                                  <rule name="check"/>
                                  <sequence>
                                    <rule name="navigator.right"/>
                                    <var var="0"/>
                                  </sequence>
                                </orelse>
                              </decl>
                              <var var="0"/>
                            </let>
                            <var var="3"/>
                          </sequence>
                        </choice>
                      </decl>
                      <var var="3"/>
                    </let>
                    <orelse>
                      <rule name="navigator.up"/>
                      <succeed/>
                    </orelse>
                  </sequence>
                </choice>
              </decl>
              <var var="2"/>
            </let>
            <var var="4"/>
          </sequence>
          <succeed/>
        </orelse>
      </decl>
      <var var="4"/>
    </let>
    <let>
      <decl var="3">
        <orelse>
          <sequence>
            <let>
              <decl var="1">
                <choice>
                  <rule name="algebra.manipulation.exponents.write-as-power"/>
                  <rule name="algebra.manipulation.exponents.add-exponents"/>
                  <rule name="algebra.manipulation.exponents.sub-exponents"/>
                  <rule name="algebra.manipulation.exponents.mul-exponents"/>
                  <rule name="algebra.manipulation.exponents.simple-add-exponents"/>
                  <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>
    <choice>
      <rule name="algebra.manipulation.exponents.equation.same-base"/>
      <rule name="algebra.manipulation.exponents.equation.equals-one"/>
    </choice>
    <label name="linearequation">
      <sequence>
        <label name="phase1">
          <let>
            <decl var="4">
              <orelse>
                <sequence>
                  <choice>
                    <rule name="algebra.equations.linear.remove-div"/>
                    <label name="algebra.equations.linear.distr-times" collapsed="true">
                      <sequence>
                        <let>
                          <decl var="1">
                            <orelse>
                              <rule name="algebra.equations.linear.distr-times"/>
                              <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>
                            </orelse>
                          </decl>
                          <var var="1"/>
                        </let>
                        <let>
                          <decl var="3">
                            <orelse>
                              <sequence>
                                <let>
                                  <decl var="1">
                                    <orelse>
                                      <rule name="algebra.equations.linear.distr-times"/>
                                      <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>
                                    </orelse>
                                  </decl>
                                  <var var="1"/>
                                </let>
                                <var var="3"/>
                              </sequence>
                              <succeed/>
                            </orelse>
                          </decl>
                          <var var="3"/>
                        </let>
                      </sequence>
                    </label>
                    <label name="algebra.equations.linear.merge" collapsed="true">
                      <sequence>
                        <rule name="navigator.down"/>
                        <succeed/>
                        <let>
                          <decl var="0">
                            <choice>
                              <rule name="algebra.equations.linear.merge"/>
                              <sequence>
                                <rule name="navigator.right"/>
                                <succeed/>
                                <var var="0"/>
                              </sequence>
                            </choice>
                          </decl>
                          <var var="0"/>
                        </let>
                        <orelse>
                          <rule name="navigator.up"/>
                          <succeed/>
                        </orelse>
                        <let>
                          <decl var="1">
                            <orelse>
                              <sequence>
                                <rule name="navigator.down"/>
                                <succeed/>
                                <let>
                                  <decl var="0">
                                    <choice>
                                      <rule name="algebra.equations.linear.merge"/>
                                      <sequence>
                                        <rule name="navigator.right"/>
                                        <succeed/>
                                        <var var="0"/>
                                      </sequence>
                                    </choice>
                                  </decl>
                                  <var var="0"/>
                                </let>
                                <orelse>
                                  <rule name="navigator.up"/>
                                  <succeed/>
                                </orelse>
                                <var var="1"/>
                              </sequence>
                              <succeed/>
                            </orelse>
                          </decl>
                          <var var="1"/>
                        </let>
                      </sequence>
                    </label>
                  </choice>
                  <var var="4"/>
                </sequence>
                <succeed/>
              </orelse>
            </decl>
            <var var="4"/>
          </let>
        </label>
        <label name="phase2">
          <let>
            <decl var="0">
              <orelse>
                <sequence>
                  <choice>
                    <orelse>
                      <sequence>
                        <rule name="check"/>
                        <rule name="algebra.equations.linear.flip"/>
                      </sequence>
                      <rule name="algebra.equations.linear.var-left"/>
                    </orelse>
                    <rule name="algebra.equations.coverup.onevar.plus"/>
                    <rule name="algebra.equations.coverup.onevar.minus-left"/>
                    <rule name="algebra.equations.coverup.onevar.minus-right"/>
                    <rule name="algebra.equations.coverup.times"/>
                    <rule name="algebra.equations.coverup.negate"/>
                  </choice>
                  <var var="0"/>
                </sequence>
                <succeed/>
              </orelse>
            </decl>
            <var var="0"/>
          </let>
        </label>
        <let>
          <decl var="1">
            <orelse>
              <sequence>
                <rule name="navigator.down"/>
                <succeed/>
                <let>
                  <decl var="0">
                    <choice>
                      <rule name="algebra.equations.linear.norm-rational"/>
                      <rule name="algebra.equations.linear.norm-mixed" removed="true"/>
                      <sequence>
                        <rule name="navigator.right"/>
                        <succeed/>
                        <var var="0"/>
                      </sequence>
                    </choice>
                  </decl>
                  <var var="0"/>
                </let>
                <orelse>
                  <rule name="navigator.up"/>
                  <succeed/>
                </orelse>
                <var var="1"/>
              </sequence>
              <succeed/>
            </orelse>
          </decl>
          <var var="1"/>
        </let>
      </sequence>
    </label>
  </sequence>
</label>

Locations

LocationLabel
[]exponentialequation
[0]...algebra.equations.coverup.plus
[1]...algebra.equations.coverup.minus-left
[2]...algebra.equations.coverup.minus-right
[3]...algebra.equations.coverup.negate
[4]...algebra.equations.coverup.times
[5]...algebra.equations.coverup.numerator
[6]...algebra.equations.coverup.denominator
[7]...algebra.equations.coverup.sqrt
[8]...algebra.manipulation.exponents.factor-as-power
[9]...algebra.manipulation.exponents.reciprocal
[10]...algebra.manipulation.exponents.write-as-power
[11]...algebra.manipulation.exponents.add-exponents
[12]...algebra.manipulation.exponents.sub-exponents
[13]...algebra.manipulation.exponents.mul-exponents
[14]...algebra.manipulation.exponents.simple-add-exponents
[15]...algebra.manipulation.exponents.equation.same-base
[16]...algebra.manipulation.exponents.equation.equals-one
[17]...linearequation
[0,17]......phase1
[0,0,17].........algebra.equations.linear.remove-div
[1,0,17].........algebra.equations.linear.distr-times
[0,1,0,17]............algebra.equations.linear.distr-times
[1,1,0,17]............algebra.equations.linear.distr-times
[2,0,17].........algebra.equations.linear.merge
[0,2,0,17]............algebra.equations.linear.merge
[1,2,0,17]............algebra.equations.linear.merge
[1,17]......phase2
[0,1,17].........algebra.equations.linear.flip
[1,1,17].........algebra.equations.linear.var-left
[2,1,17].........algebra.equations.coverup.onevar.plus
[3,1,17].........algebra.equations.coverup.onevar.minus-left
[4,1,17].........algebra.equations.coverup.onevar.minus-right
[5,1,17].........algebra.equations.coverup.times
[6,1,17].........algebra.equations.coverup.negate
[2,17]......algebra.equations.linear.norm-rational
[3,17]......algebra.equations.linear.norm-mixed