Exercise algebra.equations.linear.mixed

Description
solve a linear equation with mixed fractions

Strategy

<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" removed="true"/>
                  <rule name="algebra.equations.linear.norm-mixed"/>
                  <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>

Locations

LocationLabel
[]linearequation
[0]...phase1
[0,0]......algebra.equations.linear.remove-div
[1,0]......algebra.equations.linear.distr-times
[0,1,0].........algebra.equations.linear.distr-times
[1,1,0].........algebra.equations.linear.distr-times
[2,0]......algebra.equations.linear.merge
[0,2,0].........algebra.equations.linear.merge
[1,2,0].........algebra.equations.linear.merge
[1]...phase2
[0,1]......algebra.equations.linear.flip
[1,1]......algebra.equations.linear.var-left
[2,1]......algebra.equations.coverup.onevar.plus
[3,1]......algebra.equations.coverup.onevar.minus-left
[4,1]......algebra.equations.coverup.onevar.minus-right
[5,1]......algebra.equations.coverup.times
[6,1]......algebra.equations.coverup.negate
[2]...algebra.equations.linear.norm-rational
[3]...algebra.equations.linear.norm-mixed