\documentclass[a4paper, titlepage]{article} \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage{textcomp} \usepackage[french]{babel} \usepackage{amsmath, amssymb} \usepackage{amsthm} \usepackage[svgnames]{xcolor} \usepackage{thmtools} \usepackage{lipsum} \usepackage{framed} \usepackage{parskip} \usepackage{titlesec} \renewcommand{\familydefault}{\sfdefault} % figure support \usepackage{import} \usepackage{xifthen} \pdfminorversion=7 \usepackage{pdfpages} \usepackage{transparent} \newcommand{\incfig}[1]{% \def\svgwidth{\columnwidth} \import{./figures/}{#1.pdf_tex} } \pdfsuppresswarningpagegroup=1 \colorlet{defn-color}{DarkBlue} \colorlet{props-color}{Blue} \colorlet{warn-color}{Red} \colorlet{exemple-color}{Green} \colorlet{corol-color}{Orange} \newenvironment{defn-leftbar}{% \def\FrameCommand{{\color{defn-color}\vrule width 3pt} \hspace{10pt}}% \MakeFramed {\advance\hsize-\width \FrameRestore}}% {\endMakeFramed} \newenvironment{warn-leftbar}{% \def\FrameCommand{{\color{warn-color}\vrule width 3pt} \hspace{10pt}}% \MakeFramed {\advance\hsize-\width \FrameRestore}}% {\endMakeFramed} \newenvironment{exemple-leftbar}{% \def\FrameCommand{{\color{exemple-color}\vrule width 3pt} \hspace{10pt}}% \MakeFramed {\advance\hsize-\width \FrameRestore}}% {\endMakeFramed} \newenvironment{props-leftbar}{% \def\FrameCommand{{\color{props-color}\vrule width 3pt} \hspace{10pt}}% \MakeFramed {\advance\hsize-\width \FrameRestore}}% {\endMakeFramed} \newenvironment{corol-leftbar}{% \def\FrameCommand{{\color{corol-color}\vrule width 3pt} \hspace{10pt}}% \MakeFramed {\advance\hsize-\width \FrameRestore}}% {\endMakeFramed} \def \freespace {1em} \declaretheoremstyle[headfont=\sffamily\bfseries,% notefont=\sffamily\bfseries,% notebraces={}{},% headpunct=,% bodyfont=\sffamily,% headformat=\color{defn-color}Définition~\NUMBER\hfill\NOTE\smallskip\linebreak,% preheadhook=\vspace{\freespace}\begin{defn-leftbar},% postfoothook=\end{defn-leftbar},% ]{better-defn} \declaretheoremstyle[headfont=\sffamily\bfseries,% notefont=\sffamily\bfseries,% notebraces={}{},% headpunct=,% bodyfont=\sffamily,% headformat=\color{warn-color}Attention~\NUMBER\hfill\NOTE\smallskip\linebreak,% preheadhook=\vspace{\freespace}\begin{warn-leftbar},% postfoothook=\end{warn-leftbar},% ]{better-warn} \declaretheoremstyle[headfont=\sffamily\bfseries,% notefont=\sffamily\bfseries,% notebraces={}{},% headpunct=,% bodyfont=\sffamily,% headformat=\color{exemple-color}Exemple~\NUMBER\hfill\NOTE\smallskip\linebreak,% preheadhook=\vspace{\freespace}\begin{exemple-leftbar},% postfoothook=\end{exemple-leftbar},% ]{better-exemple} \declaretheoremstyle[headfont=\sffamily\bfseries,% notefont=\sffamily\bfseries,% notebraces={}{},% headpunct=,% bodyfont=\sffamily,% headformat=\color{props-color}Proposition~\NUMBER\hfill\NOTE\smallskip\linebreak,% preheadhook=\vspace{\freespace}\begin{props-leftbar},% postfoothook=\end{props-leftbar},% ]{better-props} \declaretheoremstyle[headfont=\sffamily\bfseries,% notefont=\sffamily\bfseries,% notebraces={}{},% headpunct=,% bodyfont=\sffamily,% headformat=\color{props-color}Théorème~\NUMBER\hfill\NOTE\smallskip\linebreak,% preheadhook=\vspace{\freespace}\begin{props-leftbar},% postfoothook=\end{props-leftbar},% ]{better-thm} \declaretheoremstyle[headfont=\sffamily\bfseries,% notefont=\sffamily\bfseries,% notebraces={}{},% headpunct=,% bodyfont=\sffamily,% headformat=\color{corol-color}Corollaire~\NUMBER\hfill\NOTE\smallskip\linebreak,% preheadhook=\vspace{\freespace}\begin{corol-leftbar},% postfoothook=\end{corol-leftbar},% ]{better-corol} \declaretheorem[style=better-defn]{defn} \declaretheorem[style=better-warn]{warn} \declaretheorem[style=better-exemple]{exemple} \declaretheorem[style=better-corol]{corol} \declaretheorem[style=better-props, numberwithin=defn]{props} \declaretheorem[style=better-thm, sibling=props]{thm} \newtheorem*{lemme}{Lemme}%[subsection] %\newtheorem{props}{Propriétés}[defn] \newenvironment{system}% {\left\lbrace\begin{align}}% {\end{align}\right.} \newenvironment{AQT}{{\fontfamily{qbk}\selectfont AQT}} \usepackage{LobsterTwo} \titleformat{\section}{\newpage\LobsterTwo \huge\bfseries}{\thesection.}{1em}{} \titleformat{\subsection}{\vspace{2em}\LobsterTwo \Large\bfseries}{\thesubsection.}{1em}{} \titleformat{\subsubsection}{\vspace{1em}\LobsterTwo \large\bfseries}{\thesubsubsection.}{1em}{} \newenvironment{lititle}% {\vspace{7mm}\LobsterTwo \large}% {\\} \renewenvironment{proof}{\par$\square$ \footnotesize\textit{Démonstration.}}{\begin{flushright}$\blacksquare$\end{flushright}\par} \title{Induction} \author{William Hergès\thanks{Sorbonne Université}} \begin{document} \maketitle \newpage \begin{defn} Soient $E$ un ensemble, $X_0$ une partie de $E$ et $\mathcal{F}$ un ensemble de règles données sous la forme d'applications distinctes $f:E^{a(f)}\to E$, avec $a(f)$ l'arité de l'application $f$. L'ensemble définie inductivement à l'aide de $E$, $X_0$ et $\mathcal{F}$, est le plus petit ensemble $X$ de $E$ vérifiant~: \begin{itemize} \item $X_0\subseteq X$ \item pour toute application $f$ d'arité $n$ de $\mathcal{F}$, pour tous $x_1,\ldots,x_{n}$, si $(x_1,\ldots,x_n)\in X^{n}$, alors $f(x_1,\ldots,x_{n})$ est dans $X$. \end{itemize} \end{defn} \begin{exemple} L'ensemble $X$ des entiers pairs est définissable comme~: $$ X \left\{\begin{matrix}X_0 &= \{0\}\\ \mathcal{F} &= \{x\longmapsto x+2\} \end{matrix}\right. $$ \end{exemple} \begin{defn} Soit $X$ un ensemble défini par induction structurelle à partir de $E$, $X_0$ et $\mathcal{F}$. On peut définir par une fonction $g$ par induction structurelle de la façon suivante~: \begin{itemize} \item tous les $x$ dans $X_0$ doivent être données explicitement \item pour toute règle $f$ dans $\mathcal{F}$ d'arité $n$, on donne $$ g(f(x_1,\ldots,x_n)) = h(x_1,\ldots,x_n,g(x_1),\ldots,g(x_n)) $$ \end{itemize} \end{defn} \begin{exemple} La hauteur $h$ d'un arbre binaire est définie par~: \begin{itemize} \item $h(\varnothing) = 0$ \item $h((a,g,d)) = 1+\max(h(g), h(d))$ \end{itemize} Le nombre d'éléments $\mathcal{N}$ d'un arbre binaire est défini par~: \begin{itemize} \item $\mathcal{N}(\varnothing) = 0$ \item $\mathcal{N}(a,g,d) = 1+\mathcal{N}(g)+\mathcal{N}(d)$ \end{itemize} \end{exemple} \begin{thm} Soit $X$ un ensemble défini par induction structurelle à partir de $E$, $X_0$ et $F$. Soit $P$ une propriété vraie sur les éléments de $X$. \fbox{Base} Si $P(x)$ est vraie pour tout $x\in X_0$, \fbox{Induction} Si, pour tout $f$ dans $\mathcal{F}$ d'arité $n$, pour tous $x_1,\ldots,x_n\in X$, \textbf{si} $P(x_1),\ldots,P(x_n)$ sont vraies, \textbf{alors} $P(f(x_1,\ldots,x_n))$ est vraie. Alors pour tous $x$ dans $X$, $P(x)$ est vraie. \end{thm} Il s'agit de la preuve par induction structurelle. \begin{proof} Soit $V=\{x\in X | P(x)\}$. \begin{itemize} \item $V\subseteq X$ \item Par la base, on a $X_0\subseteq V$. Soient $f$ dans $\mathcal{F}$ d'arité $n$ et $(x_1,\ldots,x_n)\in V^n$. Alors, par induction, $P(f(x_1,\ldots,x_n))$ est vraie. Donc $f(x_1,\ldots,x_n)$ est dans $V$. Par définition, $X$ est le plus petit ensemble de vérifiant ces conditions, alors $X\subseteq V$ \end{itemize} Ainsi, $X=V$ et $P(x)$ est vraie pour tout $x$ dans $X$. \end{proof} \end{document}