Exercise algebra.inequalities.linear

Description
solve a linear inequation

Strategy

<label name="linearinequation">
  <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">
      <sequence>
        <orelse>
          <rule name="algebra.equations.linear.var-left"/>
          <succeed/>
        </orelse>
        <orelse>
          <choice>
            <rule name="algebra.equations.coverup.onevar.plus"/>
            <rule name="algebra.equations.coverup.onevar.minus-left"/>
            <rule name="algebra.equations.coverup.onevar.minus-right"/>
            <fail/>
          </choice>
          <succeed/>
        </orelse>
        <orelse>
          <rule name="algebra.inequalities.flip-sign"/>
          <succeed/>
        </orelse>
        <orelse>
          <rule name="algebra.equations.coverup.times-positive"/>
          <succeed/>
        </orelse>
      </sequence>
    </label>
  </sequence>
</label>

Locations

LocationLabel
[]linearinequation
[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.var-left
[1,1]......algebra.equations.coverup.onevar.plus
[2,1]......algebra.equations.coverup.onevar.minus-left
[3,1]......algebra.equations.coverup.onevar.minus-right
[4,1]......algebra.inequalities.flip-sign
[5,1]......algebra.equations.coverup.times-positive