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
Location | Label |
[] | 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 |