\documentclass[10pt,a4paper]{article}
\usepackage{ifxetex}
\usepackage[T1]{fontenc}
\usepackage[mathletters]{ucs}
\usepackage[utf8x]{inputenc}
\usepackage[french]{babel}
\usepackage{geometry}
\usepackage[enonce]{exam}
%\usepackage[correction]{exam}

\usepackage{epsf,amsmath,amssymb,graphicx,realboxes}
\newcommand\scr{}
\usepackage[boldsans]{ccfonts}
\usepackage[mathcal,mathbf]{euler}
\usepackage{siunitx,textcomp}

\usepackage{tikz}
\usetikzlibrary{automata,fit,trees,matrix,arrows,decorations.pathmorphing,shapes.arrows,chains,positioning,intersections,backgrounds,calc,through,mindmap}
%\newcommand{\myunit}{1.1cm}
\usepackage{tkz-graph}
\input{patch-tkz-graph}
\usepackage{tikz-qtree}

\newcommand{\ve}[1]{\overrightarrow{#1}}


\renewcommand{\algocommentfont}{\small\ttfamily\itshape}



\graphicspath{{/home/moi/IUT/Figures/}{/home/moi/VISA_III/figures_visa/}{/home/moi/Lycee/TDmaple/2006_7/}{/home/moi/Figures/Arbres_Graphes/}{/home/moi/Figures/FigSTI/}{/home/moi/Figures/FigMaple/}{/home/moi/Photos/Maths/}{/home/moi/Photos/Tehessin/}{/home/moi/Figures/FigSTI/}{/home/moi/Figures/FigSeconde/}{/home/moi/Lycee/Informatique/XCAS/2008_9/}{/home/moi/Lycee/TDmaple/2008_9/}{/home/moi/IUT/Thierry/Conversions/}{/home/moi/Photos/informathix/}{/home/moi/Lycee/Informatique/PafAlgo/}{/home/moi/Figures/figuresAlice/}{/home/moi/Figures/FigSeconde/}{/home/moi/Biocam/robot/}{/home/moi/Biocam/CoursIni3d/}{/home/moi/Biocam/central/figures/}{/home/moi/Biocam/central/}{/home/moi/IUT/INFO2/Images/}{/home/moi/IUT/INFO2/2011_12/graphes/}{/home/moi/IUT/INFO1/CM1/}{/home/moi/Figures/figuresTS/}{/home/moi/Photos/Tehessin/}{/home/moi/Figures/FigSTI/}{/home/moi/Alice/figures3/}{/home/moi/Alice/figures3/newcourbes/}{/home/moi/Alice/figures/}{/home/moi/Figures/figuresAlice/}{/home/moi/Photos/Maths/}{/home/moi/Lycee/TS/}{/home/moi/Lycee/TS/2009_10/}{/home/moi/Figures/FigMaple/}{/home/moi/Figures/figuresTS/newcourbes/}{/home/moi/Figures/FigEspace/}{/home/moi/PROG/HASKELL/FLOAT/}} 



\newcommand{\curvedarrowcirc}{%
\begin{tikzpicture}[inner sep=0pt,baseline=-0.25em]
\useasboundingbox (-0.25em,0) rectangle (0.25em,0);
\node at (0,0) {{\small $\circ$}};
\draw[->] (210:0.20cm) arc (210:60:0.20cm);
\end{tikzpicture}
}



\newcommand{\illt}[4]{\begin{minipage}[t]{#3\linewidth}\vspace{0cm}#1\end{minipage}\hspace{0.5cm}\begin{minipage}[t]{#4\linewidth}\vspace{-0.25cm}
\hspace{5.5cm} \begin{flushright}\includegraphics[width=\linewidth]{#2}\end{flushright}\end{minipage}}

\newcommand{\ch}{\operatorname{ch}}
\newcommand{\sh}{\operatorname{sh}}
%\newcommand{\cos}{\operatorname{cos}}
%\newcommand{\ln}{\operatorname{ln}}
%\newcommand{\exp}{\operatorname{exp}}
\newcommand{\E}{{\operatorname e}}

\usepackage{listing}

\lstset{
 language=haskell,
        escapeinside={(*@}{@*)},
        %numbers=left,
        basicstyle={\small\ttfamily},
        commentstyle={\small\itshape\color{pink!60!black}},
        keywordstyle={\ttfamily\bfseries\fontfamily{ul9}\selectfont\color{black!60!blue}},
        stringstyle={\small\ttfamily\color{gray!50!black}\itshape},
        breaklines=true,
        breakatwhitespace=true,
        showtabs=False,
        showspaces=False,
        showstringspaces=False,
        extendedchars=true,
        %aboveskip=1em,
        %belowskip=1em,
        rulecolor=\color{gray},
        %rulesepcolor=\color{gray},
        %frame=trBL,
        frame=single,
        frameround=tttt,
        framerule=0.3pt,
        framesep=4pt,
        belowcaptionskip=2.1pt,
        literate={μ}{{$\mu $}}1,
title={{\setlength{\fboxsep}{1pt}\fcolorbox{gray}{gray!10}{\sffamily\scriptsize
      \textcolor{gray!10}{\_}Haskell \textcolor{gray!10}{\_}}}}}

% %%% Fraction en oblique
\newcommand{\ofr}[2]{%
	\raisebox{0ex}{$#1$}\negthinspace\slash
	\raisebox{-.5ex}{$#2$}}


\newcommand{\RR}{\mathcal{R}}



%transposee
\usepackage{fouridx}
\newcommand*{\transp}[1]{\fourIdx{{\rm t}}{}{}{}{#1}}
\newcommand\tr{\vphantom{}^{\rm t}}

\newcommand{\dd}{\text{ d}}


\paper{DS-M1-21} % <- do not include FC, FT etc
%\version{0}                     % <- for multiple choice exams
\title{Devoir Surveillé - Algèbre}
\time{quatre-vingts  minutes / cent sept en cas de tiers temps} % <- number of hours: default is three
\semester{Premier semestre}
\annee{2014-2015} % <- default is the current year

% %\campus{City}
% \note{\small \bfseries
% Vous justifierez vos réponses
%     avec le  plus grand  soin. N'oubliez pas  qu'il serait  maladroit de
%     copier sur  votre voisin(e) qui  a, de toute façon,  écrit n'importe
%     quoi. Aucune calculatrice ni tout autre engin  relié
%     à un quelconque réseau n'est autorisé.
% }


%\setlength{\parskip}{0em}
\begin{document} 


% exo 1

\begin{exercice}
  On considère l'ensemble E des matrices à coefficients réels de la forme:

$$
\begin{pmatrix}
  a&0\\
  b&0
\end{pmatrix}, \quad a\in\bbr\setminus \bigl\{0\bigr\}, \ b\in\bbr
$$

muni du produit des matrices noté $\otimes$.

\begin{enumerate}
\item Montrez que $\langle E,\otimes\rangle$ a une structure de magma.
\item Est-ce que $\langle E,\otimes\rangle$ a des éléments neutres à droite?
\item Est-ce que $\langle E,\otimes\rangle$ a des éléments neutres à gauche?
\item Soit $e$ un  élément neutre à droite. Montrer que tout  élément de E possède
  un inverse à gauche pour cet élément neutre, i.e.

$$(\forall g\in E)(\exists h \in E)(hg = e)$$
\end{enumerate}
\end{exercice}




% exo 2
\begin{exercice}
  On considère un triangle équilatéral. On note  1, 2 et 3 ses sommets, $d_1$ la
  médiane issue de 1, $d_2$ celle issue de 2 et $d_3$ celle issue de 3 et O leur
  intersection.



\begin{center}
\begin{tikzpicture}
% Three vertices of a triangle
\coordinate[label=below left:$1$] (A) at (0,0);
\coordinate[label=right:$2$] (B) at (4,0);
\coordinate[label=above:$3$] (C) at (2,3.464);

% Find the midpoints
\coordinate[label=above right:$d_1$] (Aprime) at ($(B)!0.5!(C)$);
\coordinate[label=above left:$d_2$] (Bprime) at ($(A)!0.5!(C)$);
\coordinate[label=below:$d_3$] (Cprime) at ($(A)!0.5!(B)$);

% Draw the triangle and its three medians

\draw (A) -- (B) -- (C) -- cycle
(A) -- (Aprime) (B) -- (Bprime) (C) -- (Cprime);
\end{tikzpicture}
\end{center}


On note  $f_4$ la  rotation de  centre O et  d'angle $\ang{0}$,  $f_5$ la  rotation de
centre O et d'angle $\ang{120}$, $f_6$ la  rotation de
centre O  et d'angle $\ang{-120}$  et $f_1$,  $f_2$ et $f_3$  les symétries
orthogonales d'axes respectifs $d_1$, $d_2$ et $d_3$.


\begin{enumerate}
\item On peut résumer l'action de ces transformations sous la \textit{forme} d'une matrice:


$$
\begin{pmatrix}
  1&2&3\\
f_i(1)&f_i(2)&f_i(3)
\end{pmatrix}
$$

Par exemple, pour $f_2$:


$$
\begin{pmatrix}
  1&2&3\\
  3&2&1
\end{pmatrix}
$$

Donnez les 5 autres matrices des cinq autres transformations.

\item On note E l'ensemble de ces transformations. Dressez la table de Pythagore
  de $\langle E,\circ\rangle$.

\item Quelle est la structure algébrique la plus \og riche\fg{} de $\langle
  E,\circ\rangle$: magma, monoïde, groupe, anneau, demi-anneau, corps? 

\item Observez bien  les représentations matricielles des éléments  de E: est-ce
  qu'elles vous rappellent une notion étudiée en cours?

\end{enumerate}






\end{exercice}




% exo 3

\begin{exercice}
  Soit  $A =  \bbr  \setminus \bigl\{-1,0\bigr\}$.  On  considère les  fonctions
  suivantes de A dans A:


$$f_1(x)=x\qquad f_2(x)=\frac{1}{x}\qquad f_3(x)=\frac{1}{1-x}\qquad
f_4(x)=1-x\qquad f_5(x)=\frac{x-1}{x}\qquad f_6(x)=\frac{x}{x-1}$$


Est-ce que $E=\bigl\{f_1,f_2,f_3,f_4,f_5,f_6\bigr\}$ est un groupe pour la
composition des fonctions?
    
 
\end{exercice}








% exo 4

\begin{exercice}
Dans la bibliothèque  \Colorbox{blue!10}{\lstinline{Data.Monoid}} de Haskell est
définie  la classe  de type  \Colorbox{blue!10}{\lstinline{Monoid}} de  la façon
suivante:

\begin{lstlisting}
class Monoid a where 
    mempty  :: a
    mappend :: a -> a -> a  
\end{lstlisting}



Voici un extrait de la documentation:


\begin{lstlisting}
The class of monoids. Instances should satisfy the following laws:
    mappend mempty x = x
    mappend x mempty = x
    mappend x (mappend y z) = mappend (mappend x y) z
\end{lstlisting}


\begin{enumerate}
\item Quel est le lien entre la classe 
  \Colorbox{blue!10}{\lstinline{Monoid}} et  la structure de monoïde  étudiée en
  cours? Expliquez.


\item 
Voici une instance possible de cette classe:


\begin{lstlisting}
instance Monoid Int where
        mempty = 0
        x `mappend` y = x + y
\end{lstlisting}

\begin{enumerate}
\item     Si l'on     avait     remplacé
  \Colorbox{blue!10}{\lstinline{+}}    par    \Colorbox{blue!10}{\lstinline{*}},
  qu'aurait-on mis à droite de \Colorbox{blue!10}{\lstinline{mempty}}? Expliquez. 

\item On définit la fonction:

  \begin{lstlisting}
mconcat :: (Monoid a) => [a] -> a
mconcat = foldl mappend mempty
  \end{lstlisting}

Expliquez ce que donne
 \Colorbox{blue!10}{\lstinline{mconcat  ([5,6,10] ::  [Int])}}. On  rappelle que
 \Colorbox{blue!10}{\lstinline{::}} se  lit \og  ...qui a pour  type...\fg{}. On
 précise donc ainsi que \Colorbox{blue!10}{\lstinline{[5,6,10]}} est une liste d'entiers.
\end{enumerate}
 

\item Peut-on faire de \Colorbox{blue!10}{\lstinline{String}} une instance de \Colorbox{blue!10}{\lstinline{Monoid}}?


  \begin{lstlisting}
instance Monoid String where
        mempty  = ???
        mappend = ???
  \end{lstlisting}


\item Pouvez-vous définir \Colorbox{blue!10}{\lstinline{mempty}} et \Colorbox{blue!10}{\lstinline{mappend}} en utilisant uniquement \Colorbox{blue!10}{\lstinline{mconcat}}? Expliquez.

\item  Une fonction  \Colorbox{blue!10}{\lstinline{f ::  a  -> b  }} entre  deux
  monoïdes                  \Colorbox{blue!10}{\lstinline{a}}                 et
  \Colorbox{blue!10}{\lstinline{b}} est un \textit{morphisme} de monoïde si elle
  préserve la structure de monoïde:

  \begin{lstlisting}
f (mempty :: a)   = mempty :: b
f (x `mappend` y) = f x `mappend` f y
  \end{lstlisting}

Donnez un exemple bien connu de morphisme entre \Colorbox{blue!10}{\lstinline{String}} et
\Colorbox{blue!10}{\lstinline{Int}}   considérés   comme    des   instances   de
\Colorbox{blue!10}{\lstinline{Monoid}}.

\item 
  On définit une classe \Colorbox{blue!10}{\lstinline{Groupe}} pour définir des...groupes:

  \begin{lstlisting}
class (Monoid g) => Groupe g where
    sym   :: g -> g
  \end{lstlisting}

ainsi qu'un  type \Colorbox{blue!10}{\lstinline{Complexe}}  qui représente...les
nombres complexes:

\begin{lstlisting}
data Complexe = Double ::: Double
\end{lstlisting}

On   fait   de    \Colorbox{blue!10}{\lstinline{Complexe}}   une   instance   de
\Colorbox{blue!10}{\lstinline{Show}}:

\begin{lstlisting}
instance Show Complexe where
    show (r:::i) = (show r) ++ " + " ++ (show i) ++ "i"  
\end{lstlisting}

Par exemple:

\begin{lstlisting}
> let z = 3:::5
> z
3.0 + 5.0i
\end{lstlisting}

\begin{enumerate}
\item Faites  alors  de  \Colorbox{blue!10}{\lstinline{Complexe}}  une  instance  de
  \Colorbox{blue!10}{\lstinline{Monoid }}.
\item À  votre avis,  quel est  le rôle  de \Colorbox{blue!10}{\lstinline{sym}}?
  Faites  alors  de  \Colorbox{blue!10}{\lstinline{Complexe}}  une  instance  de \Colorbox{blue!10}{\lstinline{Groupe}}.
\item On définit une  classe \Colorbox{blue!10}{\lstinline{EV}} pour représenter
  des structures d'espaces vectoriels:

  \begin{lstlisting}
class (Groupe v) => EV v k where 
    (^.^) :: k -> v -> v
  \end{lstlisting}

Complétez alors l'instanciation suivante:

\begin{lstlisting}
instance EV Complexe Double where 
    (^.^) k  (r:::i)   = ?????
\end{lstlisting}

\item Remplacez  les trois  séries de  \Colorbox{blue!10}{\lstinline{?????}} par
  leurs valeurs:

  \begin{lstlisting}
> let z = 3:::5
> let z' = 2:::(-4)
> sym z
?????
> z `mappend` z'
?????
> (3::Double) ^.^ z
?????
  \end{lstlisting}
  
\end{enumerate}



\end{enumerate}
\end{exercice}

























%%% réponses

\answersheet



%1

\begin{exercice}
  
\begin{enumerate}
 
  \item \textcolor{white}{.}
\vspace{6cm}

  \item \textcolor{white}{.}
\vspace{4cm}
  \item \textcolor{white}{.}
\vspace{4cm}
  \item \textcolor{white}{.}
\vspace{4cm}

\end{enumerate}

\end{exercice}

\vfill\eject

%2

\begin{exercice}
  \begin{enumerate}
 
  \item \textcolor{white}{.}
    \begin{multicols}{3}
  \begin{pmatrix}
         \textcolor{white}{mmm}& \textcolor{white}{mmm}& \textcolor{white}{mmm}\\
          \textcolor{white}{mmm}& \textcolor{white}{mmm}& \textcolor{white}{mmm}
      \end{pmatrix}

 \begin{pmatrix}
         \textcolor{white}{mmm}& \textcolor{white}{mmm}& \textcolor{white}{mmm}\\
          \textcolor{white}{mmm}& \textcolor{white}{mmm}& \textcolor{white}{mmm}
      \end{pmatrix}

 \begin{pmatrix}
         \textcolor{white}{mmm}& \textcolor{white}{mmm}& \textcolor{white}{mmm}\\
          \textcolor{white}{mmm}& \textcolor{white}{mmm}& \textcolor{white}{mmm}
      \end{pmatrix}

 \begin{pmatrix}
         \textcolor{white}{mmm}& \textcolor{white}{mmm}& \textcolor{white}{mmm}\\
          \textcolor{white}{mmm}& \textcolor{white}{mmm}& \textcolor{white}{mmm}
      \end{pmatrix}

 \begin{pmatrix}
         \textcolor{white}{mmm}& \textcolor{white}{mmm}& \textcolor{white}{mmm}\\
          \textcolor{white}{mmm}& \textcolor{white}{mmm}& \textcolor{white}{mmm}
      \end{pmatrix}

    \end{multicols}
  \item \textcolor{white}{.}

{\Large
    \begin{tabular}[h]{|*{7}{c|}}
\hline
      \curvedarrowcirc & $f_1$ & $f_2$ & $f_3$ & $f_4$ & $f_5$ & $f_6$\\
\hline
      $f_1$ &&&&&&\\
\hline
$f_2$ &&&&&&\\
\hline
$f_3$ &&&&&&\\
\hline
$f_4$ &&&&&&\\
\hline
$f_5$ &&&&&&\\
\hline
$f_6$ &&&&&&\\
\hline
    \end{tabular}
}  

  
\vspace{2cm}

 \item \textcolor{white}{.}
\vspace{4cm}
\item \textcolor{white}{.}
\vspace{3cm}
  \end{enumerate}
\end{exercice}

\vfill\eject
% exo 3


\begin{exercice}
\vspace{10cm}

\end{exercice}

\vfill
\eject


%4


\begin{exercice}
  \begin{enumerate}
 
  \item \textcolor{white}{.}
\vspace{3cm}
  \item 
\begin{enumerate}
\item 
\textcolor{white}{.}
\vspace{4cm}
 \item \textcolor{white}{.}
\vspace{4cm}
   \item \textcolor{white}{.}
\vspace{6cm}
\end{enumerate}
\item \textcolor{white}{.}
\vspace{2cm}


  \begin{lstlisting}
instance Monoid String where
        mempty  = 
        mappend = 
  \end{lstlisting}

\item \textcolor{white}{.}
\vspace{4cm}

\item \textcolor{white}{.}
\vspace{4cm}
\item \textcolor{white}{.}
\begin{enumerate}
\item \textcolor{white}{.}
\vspace{4cm}
\item \textcolor{white}{.}
\vspace{4cm}
\item

\begin{lstlisting}
instance EV Complexe Double where 
    (^.^) k  (r:::i)   = 
\end{lstlisting}
\vspace{1cm}
\item
  \begin{lstlisting}
> let z = 3:::5
> let z' = 2:::(-4)
> sym z


> z `mappend` z'


> (3::Double) ^.^ z

.
  \end{lstlisting}

  
\end{enumerate}
\end{enumerate}
\end{exercice}

\end{document}
%%% Local Variables: 
%%% mode: latex
%%% TeX-master: t
%%% End: 
