Exercise algebra.manipulation.rational.simplify

Description
simplify a rational expression (with a variable in a divisor)

Strategy

<label name="simplifyrationalexpression">
  <sequence>
    <rule name=""/>
    <label name="writeasdivision">
      <let>
        <decl var="0">
          <orelse>
            <sequence>
              <rule name="check"/>
              <choice>
                <rule name="algebra.equations.rational.rational-plus"/>
                <rule name="algebra.equations.rational.rational-scale"/>
                <rule name="algebra.equations.rational.to-rational"/>
              </choice>
              <var var="0"/>
            </sequence>
            <succeed/>
          </orelse>
        </decl>
        <var var="0"/>
      </let>
    </label>
    <label name="simplifydivision">
      <let>
        <decl var="6">
          <orelse>
            <sequence>
              <orelse>
                <choice>
                  <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="4">
                        <choice>
                          <label name="findfactorstep">
                            <let>
                              <decl var="2">
                                <choice>
                                  <rule name="algebra.equations.quadratic.nice-factors"/>
                                  <rule name="algebra.equations.quadratic.common-factor"/>
                                  <rule name="algebra.equations.polynomial.factor-varpower"/>
                                  <rule name="algebra.equations.polynomial.simpler-linfactor"/>
                                  <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>
                          </label>
                          <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="4"/>
                          </sequence>
                        </choice>
                      </decl>
                      <var var="4"/>
                    </let>
                    <orelse>
                      <rule name="navigator.up"/>
                      <succeed/>
                    </orelse>
                  </sequence>
                  <let>
                    <decl var="1">
                      <choice>
                        <rule name="algebra.equations.rational.cancel-div"/>
                        <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>
                  <sequence>
                    <rule name="check"/>
                    <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="5">
                        <choice>
                          <let>
                            <decl var="4">
                              <orelse>
                                <sequence>
                                  <label name="findfactorstep">
                                    <let>
                                      <decl var="2">
                                        <choice>
                                          <rule name="algebra.equations.quadratic.nice-factors"/>
                                          <rule name="algebra.equations.quadratic.common-factor"/>
                                          <rule name="algebra.equations.polynomial.factor-varpower"/>
                                          <rule name="algebra.equations.polynomial.simpler-linfactor"/>
                                          <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>
                                  </label>
                                  <var var="4"/>
                                </sequence>
                                <succeed/>
                              </orelse>
                            </decl>
                            <var var="4"/>
                          </let>
                          <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="5"/>
                          </sequence>
                        </choice>
                      </decl>
                      <var var="5"/>
                    </let>
                    <orelse>
                      <rule name="navigator.up"/>
                      <succeed/>
                    </orelse>
                    <rule name="algebra.equations.rational.cancel-div"/>
                  </sequence>
                </choice>
                <choice>
                  <let>
                    <decl var="1">
                      <choice>
                        <rule name="algebra.equations.linear.merge"/>
                        <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>
                  <label name="algebra.equations.linear.distr-times" collapsed="true">
                    <sequence>
                      <let>
                        <decl var="2">
                          <choice>
                            <rule name="algebra.equations.linear.distr-times"/>
                            <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>
                      <let>
                        <decl var="4">
                          <orelse>
                            <sequence>
                              <let>
                                <decl var="2">
                                  <choice>
                                    <rule name="algebra.equations.linear.distr-times"/>
                                    <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>
                    </sequence>
                  </label>
                </choice>
              </orelse>
              <var var="6"/>
            </sequence>
            <succeed/>
          </orelse>
        </decl>
        <var var="6"/>
      </let>
    </label>
  </sequence>
</label>

Locations

LocationLabel
[]simplifyrationalexpression
[0]...writeasdivision
[0,0]......algebra.equations.rational.rational-plus
[1,0]......algebra.equations.rational.rational-scale
[2,0]......algebra.equations.rational.to-rational
[1]...simplifydivision
[0,1]......findfactorstep
[0,0,1].........algebra.equations.quadratic.nice-factors
[1,0,1].........algebra.equations.quadratic.common-factor
[2,0,1].........algebra.equations.polynomial.factor-varpower
[3,0,1].........algebra.equations.polynomial.simpler-linfactor
[1,1]......algebra.equations.rational.cancel-div
[2,1]......findfactorstep
[0,2,1].........algebra.equations.quadratic.nice-factors
[1,2,1].........algebra.equations.quadratic.common-factor
[2,2,1].........algebra.equations.polynomial.factor-varpower
[3,2,1].........algebra.equations.polynomial.simpler-linfactor
[3,1]......algebra.equations.rational.cancel-div
[4,1]......algebra.equations.linear.merge
[5,1]......algebra.equations.linear.distr-times
[0,5,1].........algebra.equations.linear.distr-times
[1,5,1].........algebra.equations.linear.distr-times