\begin{parts}
    \vfill
    \part Faire les calculs suivants en détaillant les étapes (penser à simplifier les fractions quand c'est possible).
    \begin{multicols}{4}
        \begin{subparts}
            \Block{set e = Expression.random("{a} / {b} + {c} / {b}", ["{b} > 1"])}
            \subpart $B = \Var{e}$
            \begin{solution}
                \begin{eqnarray*}
                    \Var{e.simplify().explain() | calculus(name = "B")}
                \end{eqnarray*}
            \end{solution}
            \Block{set e = Expression.random("{a} / {b} + {c} / {d}", ["{b} > 1", "{d} > 1", "gcd({b},{d})==1"])}
            \subpart $D = \Var{e}$
            \begin{solution}
                \begin{eqnarray*}
                    \Var{e.simplify().explain() | calculus(name = "D")}
                \end{eqnarray*}
            \end{solution}
            \Block{set e = Expression.random("{a} / {b} * {c}", ["{b} > 1", "{a} > 0", "{c} > 1", "{c} != {b}"])}
            \subpart $E = \Var{e}$
            \begin{solution}
                \begin{eqnarray*}
                    \Var{e.simplify().explain() | calculus(name = "E")}
                \end{eqnarray*}
            \end{solution}
            \Block{set e = Expression.random("{a} / {b} * {c} / {d}", ["{b} > 1", "{a} > 0", "{c} > 0", "{d} > 1"])}
            \subpart $F = \Var{e}$
            \begin{solution}
                \begin{eqnarray*}
                    \Var{e.simplify().explain() | calculus(name = "F")}
                \end{eqnarray*}
            \end{solution}
        \end{subparts}
    \end{multicols}

    \part Développer puis réduire les expressions suivantes
    \begin{multicols}{2}
        \begin{subparts}
            \Block{set e = Expression.random("_*(_*x + _)")}
            \subpart $A = \Var{e}$
            \begin{solution}
                \begin{eqnarray*}
                    \Var{e.simplify().explain() | calculus(name = "A")}
                \end{eqnarray*}
            \end{solution}

            \Block{set e = Expression.random("_*x(_*x + _)")}
            \subpart $B = \Var{e}$
            \begin{solution}
                \begin{eqnarray*}
                    \Var{e.simplify().explain() | calculus(name = "B")}
                \end{eqnarray*}
            \end{solution}

            \Block{set e = Expression.random("_*(_*x + _) + _")}
            \subpart $A = \Var{e}$
            \begin{solution}
                \begin{eqnarray*}
                    \Var{e.simplify().explain() | calculus(name = "C")}
                \end{eqnarray*}
            \end{solution}

            \Block{set e = Expression.random("_*x+_*x(_*x + _)+_")}
            \subpart $B = \Var{e}$
            \begin{solution}
                \begin{eqnarray*}
                    \Var{e.simplify().explain() | calculus(name = "D")}
                \end{eqnarray*}
            \end{solution}

        \end{subparts}
    \end{multicols}

    \part Résoudre les équations suivantes.
    \begin{multicols}{4}
        \begin{subparts}
            \Block{set e = Equation.random("x  + _  = _", val_min = 1, val_max = 100)}
            \subpart $\Var{e}$
            \begin{solution}
                \begin{align*}
                    \Block{for i in e.solve()} \Var{i[0]} &= \Var{i[1]} \\ \Block{endfor} 
                \end{align*}
            \end{solution}

            \Block{set e = Equation.random("y  - _  = _", val_min = 1, val_max = 100)}
            \subpart $\Var{e}$
            \begin{solution}
                \begin{align*}
                    \Block{for i in e.solve()} \Var{i[0]} &= \Var{i[1]} \\ \Block{endfor} 
                \end{align*}
            \end{solution}

            \Block{set e = Equation.random("_x = _")}
            \subpart $\Var{e}$
            \begin{solution}
                \begin{align*}
                    \Block{for i in e.solve()} \Var{i[0]} &= \Var{i[1]} \\ \Block{endfor} 
                \end{align*}
            \end{solution}

            \Block{set e = Equation.random("_x = _/_", val_min = 2, val_max = 20)}
            \subpart $\Var{e}$
            \begin{solution}
                \begin{align*}
                    \Block{for i in e.solve()} \Var{i[0]} &= \Var{i[1]} \\ \Block{endfor} 
                \end{align*}
            \end{solution}

        \end{subparts}
    \end{multicols}

\end{parts}

