Exercise arithmetic.fractions

Description
simplify fractions

Strategy

<label name="simplify">
  <let>
    <decl var="3">
      <orelse>
        <sequence>
          <orelse>
            <let>
              <decl var="1">
                <choice>
                  <rule name="arithmetic.operation.integer.plus"/>
                  <rule name="arithmetic.operation.integer.minus"/>
                  <rule name="arithmetic.operation.integer.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>
                </choice>
              </decl>
              <var var="1"/>
            </let>
            <let>
              <decl var="1">
                <choice>
                  <rule name="algebra.manipulation.fraction-times-cancel-nominator-denominator"/>
                  <rule name="algebra.manipulation.fraction-times-cancel-denominator-nominator"/>
                  <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>
            <let>
              <decl var="1">
                <choice>
                  <rule name="algebra.manipulation.double-negate"/>
                  <rule name="algebra.manipulation.negate-zero"/>
                  <rule name="algebra.manipulation.division-denominator"/>
                  <rule name="algebra.manipulation.fraction-plus"/>
                  <rule name="algebra.manipulation.fraction-times"/>
                  <rule name="algebra.manipulation.division-numerator"/>
                  <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>
            <let>
              <decl var="1">
                <choice>
                  <rule name="algebra.manipulation.fraction-plus-scale"/>
                  <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>
            <let>
              <decl var="1">
                <choice>
                  <rule name="algebra.manipulation.simpler-fraction"/>
                  <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>
          </orelse>
          <var var="3"/>
        </sequence>
        <succeed/>
      </orelse>
    </decl>
    <var var="3"/>
  </let>
</label>

Locations

LocationLabel
[]simplify
[0]...arithmetic.operation.integer.plus
[1]...arithmetic.operation.integer.minus
[2]...arithmetic.operation.integer.times
[3]...algebra.manipulation.fraction-times-cancel-nominator-denominator
[4]...algebra.manipulation.fraction-times-cancel-denominator-nominator
[5]...algebra.manipulation.double-negate
[6]...algebra.manipulation.negate-zero
[7]...algebra.manipulation.division-denominator
[8]...algebra.manipulation.fraction-plus
[9]...algebra.manipulation.fraction-times
[10]...algebra.manipulation.division-numerator
[11]...algebra.manipulation.fraction-plus-scale
[12]...algebra.manipulation.simpler-fraction