Exercise calculus.differentiation

Description
Derivative

Strategy

<label name="derivative">
  <let>
    <decl var="4">
      <orelse>
        <sequence>
          <let>
            <decl var="2">
              <choice>
                <rule name="calculus.differentiation.constant"/>
                <rule name="calculus.differentiation.plus"/>
                <rule name="calculus.differentiation.min"/>
                <rule name="calculus.differentiation.negate"/>
                <rule name="calculus.differentiation.constant-multiple"/>
                <rule name="calculus.differentiation.power"/>
                <rule name="calculus.differentiation.var"/>
                <rule name="calculus.differentiation.product"/>
                <rule name="calculus.differentiation.quotient"/>
                <rule name="calculus.differentiation.chain-power"/>
                <rule name="calculus.differentiation.sine"/>
                <rule name="calculus.differentiation.cosine"/>
                <rule name="calculus.differentiation.sine.linear"/>
                <rule name="calculus.differentiation.cosine.linear"/>
                <rule name="calculus.differentiation.logarithmic"/>
                <rule name="calculus.differentiation.sqrt"/>
                <rule name="calculus.differentiation.chain-sqrt"/>
                <fail/>
                <label name="derivative-poly-step">
                  <sequence>
                    <rule name="check"/>
                    <rule name="calculus.differentiation.deriv-of-poly"/>
                  </sequence>
                </label>
                <sequence>
                  <rule name="check"/>
                  <rule name="navigator.down"/>
                  <succeed/>
                  <let>
                    <decl var="1">
                      <choice>
                        <sequence>
                          <rule name="navigator.down"/>
                          <succeed/>
                          <let>
                            <decl var="0">
                              <choice>
                                <rule name="calculus.differentiation.def-root"/>
                                <sequence>
                                  <rule name="navigator.right"/>
                                  <succeed/>
                                  <var var="0"/>
                                </sequence>
                              </choice>
                            </decl>
                            <var var="0"/>
                          </let>
                          <orelse>
                            <rule name="navigator.up"/>
                            <succeed/>
                          </orelse>
                        </sequence>
                        <sequence>
                          <rule name="navigator.right"/>
                          <succeed/>
                          <var var="1"/>
                        </sequence>
                      </choice>
                    </decl>
                    <var var="1"/>
                  </let>
                  <orelse>
                    <rule name="navigator.up"/>
                    <succeed/>
                  </orelse>
                </sequence>
                <sequence>
                  <rule name="navigator.down"/>
                  <succeed/>
                  <let>
                    <decl var="3">
                      <choice>
                        <var var="2"/>
                        <sequence>
                          <rule name="navigator.right"/>
                          <succeed/>
                          <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>
</label>

Locations

LocationLabel
[]derivative
[0]...calculus.differentiation.constant
[1]...calculus.differentiation.plus
[2]...calculus.differentiation.min
[3]...calculus.differentiation.negate
[4]...calculus.differentiation.constant-multiple
[5]...calculus.differentiation.power
[6]...calculus.differentiation.var
[7]...calculus.differentiation.product
[8]...calculus.differentiation.quotient
[9]...calculus.differentiation.chain-power
[10]...calculus.differentiation.sine
[11]...calculus.differentiation.cosine
[12]...calculus.differentiation.sine.linear
[13]...calculus.differentiation.cosine.linear
[14]...calculus.differentiation.logarithmic
[15]...calculus.differentiation.sqrt
[16]...calculus.differentiation.chain-sqrt
[17]...derivative-poly-step
[0,17]......calculus.differentiation.deriv-of-poly
[18]...calculus.differentiation.def-root