% equational logic
%	regras
%	exercicios
\section{L\'ogica via igualdade}\label{eqlogic}
Nesta se\cao, s\ao\ introduzidos os axiomas da formaliza\cao\ da l\oo gica
cl\aa sica usada por Dijkstra, Scholten e outros a partir dos anos $1980$ e
que se caracteriza por uma apresenta\cao\ de provas baseada em igualdade,
implica\cao\ e transitividade das mesmas e de rela\coes\ da aritm\ee tica.
O sistema formal chamado de l\oo gica \textbf{E} \ee\ introduzido e 
detalhado nos cap\ii tulos $4$ e $5$ de \cite{gs:discretemaths}.

Na apresenta\cao\ das regras e axiomas da l\oo gica valem:
\begin{itemize}
	\item $p,q,r$ denotam f\oo rmulas da l\oo gica: termos de
		tipo (valor) booleano;
	\item $a,b,c,x,y,z$ denotam termos arbitr\aa rios.
\end{itemize}

\subsection{Axiomas e regras de infer\^encia}

Os axiomas estabelecem as propriedades fundamentais de igualdade e dos
valores l\oo gicos: \ltrue\ e \lfalse.

\begin{itemize}
	\item $\infronep{}{p}{}{p[x:=E]}\jstop{\lrsubst}$
	\item $\infronep{}{a=b}{}{E[x:=a]=E[x:=b]}\jstop{\lrleibniz}$
	\item $\follows x=x\jstop{\lreqrefl}$
	\item $\infronep{}{x=y}{}{y=x}\jstop\lreqsim$
	\item $\infrtwop{}{x=y}{}{y=z}{}{x=z}\lreqtrans$
	\item $\infrtwop{}{p}{}{p=q}{}{q}\jstop{\lrequanimity}$
	\item $\follows{(p=q)=r\llr.={p=(q=r)}}\jstop{\lreqassoc}$
	\item $\follows{p=q=q=p}\jstop{\lreqsim}$

		A simetria da igualdade de proposi\coes\ permite, pelo
		axioma da associatividade, deduzir
		$$\follows((p=q)=q)=p$$
		e tamb\ee m 
		$$\follows p=(q=(q=p))$$
	\item $\follows\ltrue=q=q\jstop{\lrid(=)}$
	\item $\follows \lfalse=\neg\ltrue\jstop{\lrdef(\lfalse)}$
	\item $\follows\neg(p=q)=(\neg p=q)\jstop{\lrdist(\neg,=)}$
\end{itemize}

\begin{ex}
	Prove os seguiintes teoremas usando apenas os axiomas j\aa\ apresentados.
	\begin{enumerate}
		\item $\follows\ltrue$
		\item $\follows\neg p = q \llr.= p = \neg q$
		\item $\follows\neg\neg p = p$
	 	\item $\follows \neg p = p = \lfalse$
	\end{enumerate}
\end{ex}

Os axiomas a seguir definem as constantes l\oo gicas \lor\ e \land.
\begin{itemize}
	\item $\follows{(p\lor q)\lor r \llr.={p\lor (q\lor
		r)}}\jstop{\lrassocp\lor}$	
	\item $\follows (p\lor q)=(q\lor p)\jstop{\lrsymp\lor}$
	\item $\follows p\lor(q=r)\llr.=(p\lor q)=(p\lor r)\jstop{\lrdistpp\lor=}$
	\item $\follows p\lor p = p\jstop{\lridem(\lor)}$
	\item $\follows p\lor\neg p\jstop{\lrexclmdl}$
	\item $\follows p\land q=p=q=p\lor q\jstop{\lrgolden}$
\end{itemize}

\begin{ex}
	Prove os seguintes teoremas, usando apenas os axiomas j\aa\ apresentados.

	\begin{enumerate}
		\item $\follows p\lor\ltrue = \ltrue\jstop{\lrzero(\lor)}$
		\item $\follows p\lor\lfalse = p\jstop{\lrid(\lor)}$
		\item $\follows p\lor(q\lor r)=(p\lor q)\lor (p\lor r)
			\jstop{lrdist(\lor,\lor)}$
		\item $\follows p\lor q= p\lor\neg q = p$
		\item $\follows p\land\neg p=\lfalse$
	\end{enumerate}
\end{ex}

\begin{ex}
	Define e prove as seguintes para a conjun\cao: simetria,
	associatividade, idempot\^encia, identidade, zero, distributividade de:
	\land\ sobre \land, \land\ sobre \lor e \lor sobre \land.
\end{ex}

\begin{ex}
	Prove as seguintes leis, usando as regras j\aa\ apresentadas.
	\begin{enumerate}
		\item $\follows \neg(p\land q) = \neg p \lor \neg q$
		\item $\follows p=q\llr.=(p\land q)\lor(\neg p\land \neg q)$
		\item $\follows p=q\land(r=p)\llr.=(p=q)\land(r=q)$
	\end{enumerate}
\end{ex}

Os axiomas a seguir definem implica\cao (\limp).

\begin{itemize}
	\item $\follows p\limp q = p\lor q =q \jstop{\lrdef(\limp)}$
	\item $\follows(q\lif p) = (p\limp q)\jstop{\lrif}$
	\item $\follows p\limp q = \neg p \lor q\jstop{lrdef(\limp)}$
	\item $\follows p\limp q = \neg q\limp p\jstop{\lrcontrapos}$
\end{itemize}

\begin{ex}
	Prove os seguintes teoremas sobre implica\cao, freq\"uentemente usados
	no processo de prova.
	\begin{enumerate}
		\item $\follows p\limp(q\limp r)\llr.=(p\limp q)\limp (p\limp
			r)$
		\item $\follows p\limp(q=r)\llr.=(p\limp q)=(p\limp r)$
		\item $\follows p\land q\limp r\llr.p\limp(q\limp r)$
		\item $\follows p\limp\lfalse\ll.=\neg p$
		\item $\follows false\limp p\ll.=\ltrue$
	\end{enumerate}
\end{ex}

\begin{ex}
	Define e prove sobre sobre reflexividade, transitividade, antissimetria,
	identidade e zero \`a direita
	da implica\cao.
\end{ex}


\begin{ex}
	Os teoremas a seguir s\ao\ muito usados no desenvolvimento de 
	provas em geral. Prove-sos.
	\begin{enumerate}
		\item $\follows p\limp p\lor q\jstop{\lrweaken}$
		\item $\follows p\land q\limp p\jstop{\lrweaken}$
		\item $\follows p\land q\limp p\lor q\jstop{\lrweaken}$
		\item $\follows p\lor(q\land r)\limp p\lor q\jstop{\lrweaken}$
		\item $\follows p\land q\limp p\land(q\lor r)\jstop{\lrweaken}$
		\item $\follows p\land(p\limp q)\limp q\jstop{\lrmp}$
		\item $\follows (p\limp r)\land(\neg\limp
			r)=r\jstop{\lrbycases}$
		\item $\follows (p\limp r)\land(q\limp r)=(p\lor q\limp r)$
		\item $\follows (p\limp q)\land (q\limp p)=p=q$
		\item $\follows (p\limp q)\limp(p\lor q\limp q\lor r)
			\jstop{\lrmonotonic(\land)}$
		\item $\follows (p\limp q)\limp(p\land r\limp q\land r)
			\jstop{\lrmonotonic(\land)}$
		\item $\follows \neg(p\lor q) = \neg p\land \neg q$
	\end{enumerate}
\end{ex}






