%\documentclass[dvips,12pt]{amsart}
\documentclass[pdftex,12pt]{amsart}
\usepackage{amssymb}
\usepackage[portuges]{babel}
\usepackage{color}
\usepackage{epsfig}

\title{Seq\"u\^encias: Exerc\'{\i}cios}
\author{Raul H.C.Lopes}

%\usepackage{listings}
\input{deflogic}
\input{defseqs}
\input{defport}
%\input{defproglangs}
%\input{defenvs}

\def\beq{\begin{equation}}
\def\eeq{\end{equation}}

\def\marker{\emph{marker}}




\begin{document}
\maketitle
\section{Introdu\c c\~ao}
Estas notas cont\^em exerc\ii cios sobre propriedades de \sqn s. S\ao\ 
requisitos para o entendimento dos mesmos:
\begin{itemize}
	\item L\oo gica de primeira ordem

		Todas as provas apresentadas usam l\oo gica de primeira ordem
		e assumem os axiomas da iagualdade: reflexividade,
		simetria e transitividade. Al\ee m disso, elas s\ao\
		apresentadas no estilo de \emph{equational reasoning}, como
		em \cite{gs:discretemaths}. As seguintes constantes
		l\oo gicas s\ao\ usadas com a defini\cao\ usual:
		\begin{itemize}
			\item $\land$, conjun\cao;
			\item $\lor$, disjun\cao;
			\item $\limp$, implica\cao;
			\item $\lif$, \emph{only if};
			\item $\forall$, quantificador universal;
			\item $\exists$, quantificador existencial;
			\item $=$, igualde, que, usado sobre
				express\oes\ l\oo gicas, substitui
				equival\^encia;
			\item $\follows$, rela\cao\ de dedutibilidade:
				\[\Gamma\follows \alpha\]

				de $\Gamma$ \ee\ poss\ii vel deduzir $\alpha$.
			\item $\dfn$, abrevia\cao:
				\[X \dfn\ Y\]

				$X$ \ee\ um nome para $Y$: onde encontar $X$,
				coloque $Y$.
		\end{itemize}

	Vale ressaltar que a igualdade \ee\ rela\cao\ v\aa lida para
	qualquer par de objetos do mesmo tipo.

	\item A nota\cao\ de pontos de Curry, ver p\aa gina 34 de
		\cite{curry:foundations} \ee\ utilizada para reduzir o uso de 
		par\^enteses. Resumidamente, ela estabelece:
		\begin{itemize}
			\item S\ao\ marcadores de pontua\cao\ (de agora em
				diante \emph{markers}) ponto (\textbf{.}),
				dois pontos, e \emph{bullet} ($\bullet$), tendo
				for\ca\ crescente nessa ordem.
			\item um \marker\ \`a esquerda de um operador 
				(relacional ou funcional, un\aa rio ou 
				bin\aa rio) fecha
				uma express\ao\ (fecha um par\^enteses),
				cujo escopo se estende para a esquerda;
			\item um \marker\ \`a direita de um operador 
				(relacional ou funcional, un\aa rio ou 
				bin\aa rio) inicia
				uma express\ao\ (abre um par\^enteses),
				cujo escopo se estende para a direita;
			\item o escopo de uma express\ao\ obedece \`as seguintes
				leis:
				\begin{enumerate}
					\item O escopo de uma express\ao\
						determinado por um \marker\
						respeita os tipos impl\ii citos
						dos operadores que nela ocorrem.
					\item  um \marker\ colado
						a $\follows$ ou $\dfn$ 
						tem prioridade
						sobre qualquer outro \marker.
					\item Um \marker\ colado a uma
						constante l\oo gica tem
						prioridade sobre qualquer outro
						\marker\ colado a operadores
						(relacionais ou funcionias) 
						n\ao\ l\oo gicos.
					\item As constantes l\oo gicas t\^em
						prioridade sobre outros
						operadoes.
					\item Um \marker\ tem prioridade sobre
						outro \marker de mesma for\ca\ 
						situado \aa\ direita, desde que
						sejam respeitadas as regras
						anteriores.
				\end{enumerate}
				
		\end{itemize}
		
\end{itemize}

\section{Seq\"u\^encias}

Uma \sqn\ de elementos de um tipo $A$  \ee\ uma \sqn\ vazia (denotada por
$\xnil$) ou resultado de adicionar um elemento de $A$ a uma \sqn\ de 
elementos de $A$. Os axiomas a seguir definem \sqn s de elementos
de $A$, denotada \sqntype A:
\begin{itemize}
	\item $\xnil \in \sqntype A$
	\item $(\xcons ax)\in\sqntype A$ se $x\in\sqntype A \land a\in A$
	\item fecho universal.
\end{itemize}

Assumindo que $x,y\in\sqntype A$ e que $a,b\in A$, os seguintes axiomas 
tratam a igualdade sobre \sqn s.
\begin{itemize}
	\item $\xnil\neq (\xcons ax)$
	\item $(\xcons ax) = (\xcons by) \llr.= a=b \land x=y$
\end{itemize}

O princ\ii pio da indu\cao\ sobre \sqn s estabelece que se $P$ \ee\ propriedade
sobre \sqn s:
\begin{align*}
(\forall{x}:x&\in\sqntype A:P.x) =\\
 &(P(\xnil)\land (\bndA{x}{x\in\sqntype A}{\bndA{a}{a\in A}{
						       P(x)\limp P(\xcons
						       ax)}}))
\end{align*}
						      
As equa\coes\ a seguir definem o operador \emph{snoc} (denotado
\xsnocftor, em oposi\cao, logicamente ao operador \emph{cons}, \xconsftor).
\begin{itemize}
	\item $\xsnoc \xnil a \llr.= \xcons a\xnil$
	\item $\xsnoc{(\xcons ax)}b \llr.= \xcons a{(\xsnoc xb)}$
\end{itemize}

As equa\coes\ a seguir definem um operador \emph{cat} (denotado \xcatftor) para
concatenar duas \sqn s.

\begin{itemize}
	\item $\xcat\xnil y = y$
	\item $\xcat{(\xcons ax)}y =. \xcons a{(\xcat xy)}$ 
\end{itemize}

Pertin\^encia em uma \sqn\ \ee\ definida a seguir.
\begin{itemize}
	\item $a\not\in\xnil$
	\item $a\in (\xcons bx) =\lr. a=b\lor a\in x$
\end{itemize}

A defini\cao\ de inser\cao\ ordenada em uma \sqn\ segue. Assume-se que 
o tipo $A$ \ee\ totalmente ordenado com os operadores $<$ e $\le$ tendo
o seu significado usual.
\begin{itemize}
	\item $\xrins a\xnil = (\xcons a\xnil)$
	\item $a\le b\limp (\xrins a{(\xcons bx)} =\lr.\xcons a{(\xcons bx)})$
	\item $a> b\limp (\xrins a{(\xcons bx)} =\lr. \xcons b{(\xrins ax)})$

\end{itemize}

A seguir, a defini\cao\ de ordena\cao\ crescente n\ao\ estrita.
\begin{itemize}
	\item \xincr{(\xnil)}
	\item \xincr{(\xcons a\xnil)}
	\item $\xincr{(\xcons a(\xcons bx))} \llr.= a\le b\land \xincr{(\xcons bx)}$
\end{itemize}

\begin{ex}
	\label{lemma:0}
	Prove que 
	$$b<a\land(\bndA c{c\in x}{b\le c})\llr.\limp 
	                                   \bndA d{d\in \xrins ax}{b\le
					   d}$$
\proofbeg
\begin{align*}
	&\bndA d{d\in \xrins ax}{b\le d}\\
	\lif&\jstop{\text{por lema \ref{lemma:4}}}\\
	&\bndA d{d=a\lor d\in x}{b\le d}\\
	=&\jst{range de }\forall\\
	& b\le a \land \bndA d{d\in x}{b\le d}\\
	\lif&\jstop{\text{aritm\ee tica}}\\
	&b<a\land\bndA d{d\in}{b\le d}
\end{align*}
\proofend
					
\end{ex}

\begin{ex}
	\label{lemma:1}
	Prove que
	$$\xincr{(\xcons bx)}\limp \xincr x$$

\proofbeg
\begin{align*}
	\jst{\bf Por casos de } x:\\
	\jst{\bf Caso }{[x:=\xnil]} \\
	& \xincr{\xnil.}\\
	=&\jst{axioma de }{\xincrftor}\\
	&\ltrue\\
	\quad\jst{\bf Caso }{[x:=\xcons cz]}\\
	&\xincr{(\xcons cz)}\\
	\lif&\jstop{\lrelim \land}\\
	&b\le c\land\xincr{(\xcons cz)}\\
	=&\jst{terceiro axioma de }{\xincrftor}\\
	&\xincr{(\xcons b{\lr.\xcons cz})}
\end{align*}
\proofend
\end{ex}

\begin{ex}
	\label{lemma:2}
	Prove que
	$$(\bndA a{a\in x}{b\le a})\land \xincr{x.}\llr.\limp 
	                                        \xincr{\xcons bx.}$$
\proofbeg
\begin{align*}
	\jst{\bf Por casos de } x:\\
	&\xincr{\xcons bx.}\\
	\lif&\jstop{\lrelim\land}\\
	&\xincr{\xcons bx.}\land\ x=\xnil\\
	=&\\
	&\xincr{\xcons b\xnil.}\land\ x= \xnil\\
	=&\jst{segundo axioma de }{\xincrftor}\\
	&\ltrue\land x=\xnil\\
	=&\jst{identidade de}{\land}\\
	& x=\xnil\\
	&=\jst{\bf Caso }{[x:=\xnil]}\\
	&\ltrue\\
	&\jst{\bf caso}{[x:=\xcons cz]}\\
	&\xincr{\xcons bx.}\\
        \lif&\jstop{\lrelim\land}\\
	&\xincr{\xcons bx.}\land\ x=.\xcons cz\\
	=&\\
	&\xincr{(\xcons b{\lr.\xcons cz})}\land\ x =\lr.\xcons cz\\
	=&\jst{terceiro axioma de}{\xincrftor}\\
	&b\le c\land \xincr{\xcons cz.}\land\ x =\lr. \xcons cz\\
	\lif&\jstop{\lrelim\land}\\
	&b\le c\land(\bndA a{a\in z}{b\le a})\land 
	                        \xincr{\xcons cz.}\land\ x =\lr. \xcons cz\\
	=&\\
	&(\bndA a{a=c\lor a\in z}{b\le a})\land 
	          \xincr{\xcons cz.}\land\ x =\lr. \xcons cz\\
	=&\jst{segundo axioma de }{\in}\\
	&(\bndA a{a\in\lr.\xcons cz}{b\le a})
	                  \land \xincr{\xcons cz.}\land\ x =\lr. \xcons cz\\
	=&\\
	&(\bndA a{a\in\lr. x}{b\le a})
	                  \land \xincr{x.}\land\ x =\lr. \xcons cz\\
	=&\jst{premissa do teorema e caso }{[x:=\xcons cz]}\\
	& \ltrue
\end{align*}
\proofend
\end{ex}

\begin{ex}
	\label{lemma:3}
	Prove que 
	$$\bndA{b}{b\in A}{\xincr{(\xcons bx)}\limp \bndA a{a\in x}{b\le a}}$$

\proofbeg
Por induc\cao: trivial quando $x=\xnil$.

Assuma 
$R.x\dfn\bndA b{b\in A}{\xincr{(\xcons bx)}\limp \bndA a{a\in x}{b\le a}}$.

Prove  $R.\xcons \bndA b{b\in A}{cx\dfn \xincr{(\xcons b(\xcons cx))}\limp 
                         \bndA a{a\in (\xcons cx)}{b\le a}}$.

Assuma $\xincr{\xcons b(\xcons cx)}$.
\begin{align*}
	&\bndA a{a\in\lr.\xcons cx}{d\le a}\\
	\lif&\jst{por }{R.x}\\
	&\xincr{(\xcons dx)}\\
	\lif&\jstop{\lrelim\land}\\
	&d\le c\land \xincr{(\xcons dx)}\\
	=&\jst{terceiro axioma de }{\xincrftor}\\
	&\xincr{\xcons d{(\xcons cx)}}\\
	=&\jstop{\text{premissa do teorema}}\\
	&\ltrue
\end{align*}
\proofend
	
\end{ex}

\begin{ex}
	\label{lemma:4}
	Prove que
	$$(a\in (\xrins bx))\limp a=b\lor a\in x$$

\proofbeg
Por indu\cao.

Trivial quando $x=\xnil$.

Assuma $R.x\dfn (a\in (\xrins bx))\limp a=b\lor a\in x$

Prove $R.\xcons cx \dfn\ (a\in (\xrins b(\xcons cx)))\limp a=b\lor a\in (\xcons cx)$

Prova por casos, considerando $b\le c$ e $c<b$.

Caso $b\le c$.
\begin{align*}
	& a=b \lor a\in\lr.\xcons cx\\
	=&\jst{segundo axioma de }{\in}\\
	&a\in\lr.\xcons b{(\xcons cx)}\\
	\lif&\jstop{\lrelim\land}\\
	&b\le c \land a\in\lr.\xcons b{(\xcons cx)}\\
	\lif &\jst{segundo axioma de }{\xrinsftor}\\
	&b\le c\land a\in(\xrins b{(\xcons cx)})\\
	= &\jst{premissa do teorema e caso }{[b\le c]}\\
	&\ltrue
\end{align*}

Caso $c<b$.
\begin{align*}
	& a=b \lor a\in\lr.\xcons cx\\
	=&\jst{segundo axioma de }{\in}\\
	& a=b\lor a=c\lor a\in x\\
	=& \jst{comutatividade de }{\lor}\\
	&a=c\lor (a=b\lor a\in x)\\
	\lif&\jstop{R.x}\\
	&a=c\lor a\in(\xrins bx)\\
	=&\jst{segundo axioma de }{\in}\\
	&a\in\xcons c{(\xrins bx)}\\
	\lif&{\lrelim\land}\\
	&c<b\land a\in\xcons c{(\xrins bx)}\\
	=&\jst{segundo axioma de }{\xrinsftor}\\
	&c<b\land a\in(\xrins b{(\xcons cx)})\\
	=&\jst{premissa e caso }{c<b}\\
	&\ltrue
\end{align*}
\proofend
\end{ex}


\begin{ex}
	Prove que
	$$ \xincr{x.}\limp \bndA a{a\in A}{\xincr{(\xrins ax)}}$$
\proofbeg
Por indu\cao.

Caso base, $x=\xnil$, \ee trivial.

Assuma $R.x\dfn \xincr{x.}\limp \bndA a{a\in A}{\xincr{(\xrins ax)}}$

Prove $R.\xcons cx\dfn \xincr{(\xcons cx)}\limp 
               \bndA a{a\in A}{\xincr{(\xrins a(\xcons cx))}}$

Assuma $\xincr{(\xcons cx)}$

Prove \xincr{(\xrins a{(\xcons cx)})}

Prova por casos: $a\le c$ e $a > c$.

Caso $a\le c$ \ee\ trivial.

Caso $a>c$.
\begin{align*}
	&\xincr{(\xrins a{(\xcons cx)})}\\
	\lif&\jstop{\lrelim\land}\\
	&c<a \land \xincr{(\xrins a{(\xcons cx)})}\\
	=&\jst{terceiro axioma de }{\xrinsftor}\\
	&c<a \land \xincr{(\xcons c{(\xrins ax)})}\\
	\lif&\jst{por lema \ref{lemma:0}}{}\\%%
	&b<a \land ( (\bndA c{c\in \xrins ax}{b\le c})\land \xincr{(\xrins ax)})\\%%%%
	\lif&\jst{por lema \ref{lemma:1} e por }{R.x}\\
	&b<a\land (\bndA c{c\in \xrins ax}{b\le c}) \land \xincr{\xcons bx.}\\%%%%%%%
	=&\jst{por lema \ref{lemma:4}}{}  \\%%%%%
	& b<a\land (\bndA c{c\in x}{b\le c} \land \xincr{\xcons bx.}\\
	\lif&\jst{por lema \ref{lemma:3}}{} \\
	& b<a \land \xincr{\xcons bx.}\\
	=&\jst{premissas}{} \\
	\ltrue
\end{align*}

\proofend
\end{ex}
\bibliography{abbrev,analysis,formal,maths,algorithms,program,string}

\bibliographystyle{amsplain}



\end{document}


 

