diff --git a/1ano/2semestre/md/apontamentos/README.md b/1ano/2semestre/md/apontamentos/README.md new file mode 100644 index 0000000..d484638 --- /dev/null +++ b/1ano/2semestre/md/apontamentos/README.md @@ -0,0 +1,10 @@ +# Matemática Discreta - Apontamentos + +### Conteúdos: +* Diretório com todo o código latex das aulas: [classes](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/2semestre/md/apontamentos/classes) +* Diretório com todos os PDF com os apontamentos: [pdf](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/2semestre/md/apontamentos/pdf) +* Diretório com o template usado: [template](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/2semestre/md/apontamentos/template) +* Script em shell para a automação do sistema: [setup.sh](https://github.com/TiagoRG/uaveiro-leci/tree/master/1ano/2semestre/md/apontamentos/setup.sh) + +--- +*Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new) diff --git a/1ano/2semestre/md/apontamentos/setup.sh b/1ano/2semestre/md/apontamentos/setup.sh new file mode 100755 index 0000000..b0070c0 --- /dev/null +++ b/1ano/2semestre/md/apontamentos/setup.sh @@ -0,0 +1,34 @@ +# Confirma que o script está a ser executado no diretório correto +# shellcheck disable=SC2164 +parent_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P ) +cd "$parent_path" + +if [ $# != 1 ] +then + # Isto executa se o comando tiver mais do que 1 argumento + echo "Correct usage: md [class name (may not include spaces!)]" + +else + if [ "$1" == "reset" ] + then + # Reinicializa o template usando o git restore + git checkout 657720aba1fa3bde17d30f2021e001a972c18795 -- 1ano/2semestre/md/apontamentos/template/ + + # Termina o script + exit 0 + fi + + # Cria o diretório da determinada aula + mkdir "classes/$1" + + # Copia o conteúdo da aula para o diretório respetivo + cp -a "template/out" "classes/$1" + cp -a "template/src" "classes/$1" + + # Reinicializa o template usando o git restore + git checkout 657720aba1fa3bde17d30f2021e001a972c18795 -- 1ano/2semestre/md/apontamentos/template/ + + # Copia o pdf da aula para a pasta que contém todos os pdf + cp "classes/$1/out/main.pdf" "pdf" + mv "pdf/main.pdf" "pdf/$1.pdf" +fi diff --git a/1ano/2semestre/md/apontamentos/template/src/main.bib b/1ano/2semestre/md/apontamentos/template/src/main.bib new file mode 100644 index 0000000..330cf1a --- /dev/null +++ b/1ano/2semestre/md/apontamentos/template/src/main.bib @@ -0,0 +1,3 @@ +%! Author = tiagorg +%! Date = 31/01/2023 + diff --git a/1ano/2semestre/md/apontamentos/template/src/main.tex b/1ano/2semestre/md/apontamentos/template/src/main.tex new file mode 100644 index 0000000..7efc4f7 --- /dev/null +++ b/1ano/2semestre/md/apontamentos/template/src/main.tex @@ -0,0 +1,291 @@ +%! Author = tiagorg +%! Date = 31/01/2023 +\documentclass[11pt]{report} + +\usepackage{amsmath} +\usepackage[T1]{fontenc} % Fontes T1 +\usepackage[utf8]{inputenc} % Input UTF8 +\usepackage[backend=biber, style=ieee]{biblatex} % para usar bibliografia +\usepackage{csquotes} +\usepackage[portuguese]{babel} %Usar língua portuguesa +\usepackage{blindtext} % Gerar texto automaticamente +\usepackage{hyperref} % para autoref +\usepackage{graphicx} +\usepackage{indentfirst} +\usepackage[printonlyused]{acronym} +\usepackage{color} + +\begin{document} +\def\titulo{Matemática Discreta} +\def\autores{Tiago Garcia} +\def\autorescontactos{tiago.rgarcia@ua.pt} +\def\empresa{Universidade de Aveiro} +\def\logotipo{ua.pdf} + +% +\def\tema{Lógica de 1ª Ordem} +% + +\begin{titlepage} +\begin{center} +\vspace*{50mm} +{\Huge\textbf{\titulo}}\\ +\vspace{10mm} +{\Large \empresa}\\ +\vspace{10mm} +{\LARGE \autores}\\ +\vspace{30mm} +\begin{figure}[h] + \center + \includegraphics{ua}\label{fig:ua-title} +\end{figure} +\vspace{30mm} +\end{center} +\end{titlepage} +\title{ +{\LARGE\textbf{\titulo} }\\\\ +{\Large \aula\\ \empresa} +} +\author{ + \href{https://github.com/TiagoRG}{\autores} \\ + \href{mailto:tiago.rgarcia@ua.pt}{\autorescontactos} +} +\date{\today} +\maketitle +\pagenumbering{arabic} +\clearpage + + % Content + + \chapter*{Consequências Semânticas} + \section*{Teorema} + Uma fórmula $\Psi$ é consequência lógica (ou semântica) das fórmulas $\psi_1, \psi_2, \ldots, \psi_n$ se e só se $(\psi_1 \wedge \psi_2 \wedge \ldots \wedge \psi_n) \rightarrow \Psi$ é uma tautologia (fórmula válida). + \subsection*{Notação} + $ \psi_1, \ldots, \psi_n \models \Psi $\\ + $\Psi$ é consequência lógica (ou semântica) de $\psi_1, \ldots, \psi_n$\\ + \par $\psi_1, \ldots, \psi_n \vdash \Psi$ existe uma prova de $\Psi$ a partir de $\psi_1, \ldots, \psi_n$\\ + A prova recorre a regras de dedução designadas por regras de inferência, e a tautologias conhecidas. + + \section*{Teorema} + $\psi_1, \ldots, \psi_n \models \Psi$\\ + ($\Psi$ é consequẽncia lógica de $\psi_1, \ldots, \psi_n$) se e só se o conjunto ${{\psi_1, \ldots, \psi_n, \neg\Psi}}$ é inconsistente, isto é, não existe uma interpretação para a qual todas as fórmulas do conjunto tomam valor 1. + \par Para verificar se este conjunto de fórmulas é inconsistente usamos uma nova regra designada por resolução:\\\\ + $ \frac{\psi \rightarrow \theta~~~\Psi\vee\psi}{\theta\vee\psi} res $\\Indicam que aplicámos a regra/método da resolução. + \subsection*{Casos particulares} + \begin{enumerate} + \item{Se $ \theta \equiv \bot $ obtemos\\ + $\frac{\Psi \rightarrow \bot~~~\Psi\vee\psi}{\bot\vee\psi}$\\ + simplificando como: $\bot\vee\psi\equiv\psi~~$ e $~~\Psi\rightarrow\bot\equiv\ned\Psi\vee\bot\equiv\ned\Psi$ + \par Para este caso particular a regra da resolução é:\\ + $\frac{\neg\Psi~~~\Psi\vee\psi}{\psi} res ~~ \rightarrow \neg\Psi, \Psi $ são lineares complementares. + } + \item { + Se $ \theta\equiv\bot~~~e~~~\psi\equiv\bot $ (este é um caso particular do caso 1.) + \par Se $\psi\equiv\bot$ então $\Psi\vee\psi\equiv\Psi\vee\bot\equiv\Psi$\\ + Substituindo no caso particular da regra de resolução obtida em 1. tem-se\\ + $ \frac{\neg\Psi~~~\Psi}{\bot} res $ + } + \end{enumerate} + + \chapter*{Lógica Proposicional} + \section*{Definição} + \subsection*{Simbolos} + Variáveis proposicionais: $p, q, \Psi, \psi, \ldots$\\ + Constantes: $\bot e \top$ + Conetivos lógicos: $\wedge, \vee, \rightarrow, \leftrightarrow, \neg, \equiv$ + \subsection*{Regras de construção} + \begin{enumerate} + \item{Se $\psi$ é uma fórmula proposicional então $\neg\neg\psi$ é uma fórmula proposicional.} + \item{Se $\psi$ e $\theta$ são fórmulas proposicionais então $\psi\wedge\theta$ é uma fórmula proposicional.} + \item{Se $\psi$ e $\theta$ são fórmulas proposicionais então $\psi\vee\theta$ é uma fórmula proposicional.} + \item{Se $\psi$ e $\theta$ são fórmulas proposicionais então $\psi\rightarrow\theta$ é uma fórmula proposicional.} + \item{Se $\psi$ e $\theta$ são fórmulas proposicionais então $\psi\leftrightarrow\theta$ é uma fórmula proposicional.} + \end{enumerate} + + \section*{Dedução na lógica proposicional} + \begin{itemize} + \item {Verificar se uma fórmula é consequência lógica de um conjunto finito de fórmulas.\\ + $\psi_1, \ldots, \psi_n \models \Psi$ + } + \item {Vimos que a consequência lógica é válida se e só se a implicação\\ + $\psi_1 \wedge \psi_2 \wedge \ldots \wedge \psi_n \rightarrow \Psi$ é uma tautologia. + } + \end{itemize} + + \subsection*{Para verificar se uma consequência lógica é válida:} + \begin{enumerate} + \item Verificar se a implicação associada é uma tautologia. + \item Verificar se é possível obter (também são usados os termos deduzir, derivar, entre outros) $\Psi$ a partir de $\psi_1, \ldots, \psi_n$, recorrendo a regras de inferência e tautologias conhecidas (propriedades dos conetivos lógicos).\\ (através de uma sequência de deduções em que aplicamos as regras de inferências e tautologias), diz-se que existe uma prova de $\Psi$ a partir de $\psi_1, \ldots, \psi_n$ e escreve-se $\psi_1, \ldots, \psi_n \vdash \Psi$. + \item Aplicar a regra de resolução - Método de resolução. + \end{enumerate} + \subsubsection*{Método de resolução} + A consequência lógica $\psi_1, \ldots, \psi_n \models, \Psi$ é válida se e só se o conjunto de fórmulas {$\psi_1, \ldots, \psi_n, \neg\Psi$} é inconsistente, ou seja, este conjunto contém $\bot$ ou é possível deduzir $\bot$ a partir deste conjunto de fórmulas, isto é, existe uma prova de $\bot$ a partir de $\psi_1,\ldots,\psi_n,\neg\Psi$. + + \chapter*{Lógica de 1ª ordem} + \section*{Definição} { + Exemplo de uma fórmula da lógica proposicional:\\ + $(p \wedge q) \rightarrow r $\\ + Para traduzir frases do tipo:\\ + i) \color{red} todos \color{black} os gatos têm garras.\\ + ii) \color{red} alguns \color{black} alunos de MD têm 20.\\ + \par Passamos da lógica proposicional para a lógica de 1ª ordem (esta última engloba a outra). + } + \section*{Linguagem da lógica de 1ª ordem} { + \subsection*{Alfabeto} { + \begin{enumerate} + \item Variáveis: x, y, z, \ldots; + \item Conetivos lógicos da lógica proposicional: $\wedge, \vee, \rightarrow, \leftrightarrow, \neg, \equiv$; + \item Constantes da lógica proposicional: $\bot e \top$; + \item Os quantificadores $\forall~e~\exists$; + \item O símbolo de igualdade: =; + \item Símbolos de constantes; + \item Símbolos de funções com aridade $n \in N$ (isto é, com $n$ argumentos); + \item Símbolos de predicados. + \end{enumerate} + } + \subsection*{Termo} { + \begin{enumerate} + \item Cada variável e cada símbolo de constante é um termo; + \item { Se f é símbolo de função com aridade $n$ e $t_1, \ldots, t_n$ são termos então $f(t_1, \ldots, t_n)$ é um termo.\\\\ + Exemplo: { + \begin{itemize} + \item Variáveis: $x, y, z$; + \item Constantes: $a = 1$, $b = $ Maria, $c = $ Gato tareco; + \item Funções: pai(Maria), onde\\ Pai: $P\rightarrow P$, onde $P$ é o conjunto das pessoas. + \item Predicado: $par(x)="x$ é par\("\), $D=N$\\ $par(2)=1,~~par(3)=0$, etc. + \end{itemize} + Como é que se constroem as fórmulas da lógica de 1.ª ordem?\\ + Definição (recursiva) de fórmula: + \begin{itemize} + \item $P(t_1, \ldots, t_n)$ é uma fórmla, considerando $P$ um simbolo de predicado e $t_1,\ldots,t_n$ termos. + \item Se $\psi$ e $\Psi$ sao fórmulas então:\\ $\psi \wedge \Psi$, $\psi \vee \Psi$, $\psi \rightarrow \Psi$, $\psi \leftrightarrow \Psi$, $\neg\psi$, $\bot$ e $\top$ são fórmulas. + \item Se $\psi$ é uma fórmula e $x$ é uma variável então $\forall x \psi$ e $\exists x \psi$ também são fórmulas. + \item Se $t_1$ e $t_2$ são termos então $t_1 = t_2$ é uma fórmula. + \end{itemize} + } + } + \end{enumerate} + } + \subsection*{Átomo} { + Na lógica proposicional, os átomos são as proposições atómicas (ex: $p =$ "chove", $q = $ "vou à aula de MD")\\ + \par Os átomos da lógica de 1ª ordem são: + \begin{enumerate} + \item $\bot, \top$ + \item $t_1=t_2$, com $t_1$ e $t_2$ termos + \item $P(t_1,\ldots,t_n)$, onde $t_1,\ldots,t_n$ são termos e $P$ é um simbolo de predicado. + \end{enumerate} + \subsubsection*{Exemplo} { + Consideremos os espaços vetoriais estudados na ALGA.\\ + O alfabeto inclui: + \begin{itemize} + \item O símbolo de constante o que representa o elemento nulo dos espaço vetorial + \item Símbolos de funções + \begin{enumerate} + \item Para cada $\alpha \in R$, o símbolo de funções\\ $\alpha \cdot \_$\\ que tem aridade 1 correspondente à multiplicação escalar. + \item O símbolo de função + com aridade 2, que corresponde à adição de elementos do espaço vetorial. + \end{enumerate} + \end{itemize} + } + \subsubsection*{Exemplos} { + Converta as seguintes afirmações para linguagem simbólica da lógica de 1ª ordem: + \begin{enumerate} + \item{ \color{red}Todos \color{black} os gatos têm garras.\\ + \color{red} $\forall x$ \color{black} [$g(x) \rightarrow t(x)$]\\ + \color{red} Universo: $U$ = conjunto dos animais. + } + \item{ \color{red} Alguns \color{black} alunos de MD têm 20.\\ + \color{red} $\exists x$ \color{black} ($MD(x) \wedge V(x)$)\\ + MD(x) = "x é aluno de MD"\\ + V(x) = "x tem 20" + \color{red} Universo: $U$ = alunos da UA em 22/23 + } + \end{enumerate} + } + } + } + + \section*{Folha 1} + \subsection*{Exercício 2.} + \subsubsection*{c)} + \color{red} Todos \color{black} os insetos são mais leves do que \color{red} algum \color{black} mamífero.~~~~~\color{red} $\forall$ $\exists$\\ + \color{black} Predicados:\\ + $I(x)$ = ``x é um inseto``\\ + $L(y,z)$ = ``y é mais leve do que z``\\ + $M(w)$ = ``w é um mamífero``\\ + \par $\forall x \left(I(x) \rightarrow \exists y \left( M(y) \wedge L(x, y) \right) \right)$ + \par Obs: Alcance de cada quantificador:\\ + \begin{itemize} + \item Ocorrência de x ligada: $I(x)$ + \item Alcance de $\forall x$: $\left(I(x) \rightarrow \exists y \left( M(y) \wedge L(x, y \right) \right)$ + \item Ocorrências de y ligadas: $M(y)$ e $L(x, y)$ + \item Alcance de $\exists y$: $\left( M(y) \wedge L(x, y \right)$ + \end{itemize} + + + \chapter*{Fórmula fechada} { + \section*{Definição} { + Fórmula que não tem variáveis com occorrências livres. + \subsection*{Exemplo} { + $\forall x~\exists y~(P(x)~\rightarrow~R(x,y))$ é uma fórmula fechada. + \par $\exists y~((\forall x~P(x))~\wedge~R(x,y))$, esta fórmula não é uma fórmula fechada. + } + \subsection*{Negação de fórmula com quantificadores} { + \begin{enumerate} + \item $\neg (\forall x~\psi)~\equiv~\exists x~\neg \psi$. + \item $\neg (\exists x~\psi)~\equiv~\forall x~\neg \psi$. + \end{enumerate} + $\psi$ - parte da fórmula que está sob o quantificador. + } + } + \section*{Introdução das fórmulas da lógica de 1ª ordem} { + \subsection*{Definição} { + \begin{itemize} + \item Estrututa; + \item Valoração,~~~V:$var~\rightarrow~D$, onde $D$ é o conjunto das variáveis. + \end{itemize} + O conceito de valoração pode ser entendido por forma a podermos considerar a valoração de um termo.\\ + $V(a) = a$, se $a$ é uma constante $V(f(t_1,\ldots,t_n)) = f^M(V(t_1),\ldots,V(t_n))$. + \textbf{Obs:} Frequentemente denotamos o símbolo de função $f$ e a função correspondente na estrutura $f^M$, pela mesma letra. + } + \subsection*{Exemplo dos slides} { + $V(M(A, x)) = M^M(V(A), V(x)) = M(A^M, 2) = M(1,2) = |1-2| = |-1| = 1$,~~~~~~$V(A) = A$ porque $A$ é uma constante. + } + } + \section*{Interpretação de fórmulas} { + \subsection*{Exemplo de interpretação de fórmulas (ver slides)} { + \subsubsection*{i)} { + Mostre que $R(x, A)$ não é válida na interpretação $(M,V)$\\ + \par Note-se que $\neg (M,V)\models R(x,A)$ se e só se $(M,V) \models \neg R(x,A)$ ($\neg R(x,A)$ é válida na interpretação $(M,V)$)\\ + \par $V(\neg R(x,A))\equiv\neg R(V(x),V(A))\equiv\neg R(2, A^M)\equiv\neg R(2, 1)\\\equiv\neg(2 < 1)\equiv\neg\bot\equiv\top $\\Logo, $\neg R(x, A)$ é valida na interpretação $(M,V)$, isto é, $(M,V)\models\neg R(x, A)$\\ + Isto é equivalente a afirmar que $R(x,A)$ não é válida nesta interpretação. + } + } + } + } + \chapter*{Forma normal de Skolem} { + \section*{Definição} { + Uma fórmula $\phi$ é dita em forma normal de Skolem se $\phi$ é uma fórmula na forma normal conjuntiva e não contém nenhum quantificador universal. + } + \section*{Exemplo} { + \subsection*{1)} { + $\forall x~P(x, f(x))\wedge\neg R(x) $, onde $f$ é uma função e $R$ e $P$ são predicados.\\ + } + \subsection*{2)} { + $\forall x~\forall y~(P(x, f(x)) \wedge (\neg R(x)~\vee~P(x,y)))$ + \subsubsection*{Ideia} { + \begin{enumerate} + \item Convertemos $F$ numa fórmula $G$ que está na FNC prenex.\\ Note-se que $F \equiv G$ + \item A partir de $G$ obtemos uma fórmula $H$ que está na forma normal de Skolem. + \end{enumerate} + \textbf{Para tal:}\\ + \begin{itemize} + \item Se no início da fórmula temos um quantificador do tipo $\exists x$, substituimos todas as ocorrências de $x$ por um símbolo $a$ que represente uma constante e eliminamos o quantificador $\equiv x$. + \item Se na fórmula existe um quantificador existencial $\exists x_k$ com os quantificadores universais $\forall x_1~\forall x_2~\dots~\forall x_{k-1}$, à sua esquerda, substituimos todas as ocorrências de $x_k$ por um símbolo de função que ainda não esteja na fórmula, por exemplo $f$, que tem nos seus argumentos as variáveis $x_1, x_2, \dots, x_{k-1}$, isto é, $x_k$ é substituido por $f(x_1,\ldots,x_{k-1})$.\\\textbf{Atenção:} A fórmula $H$ que obtemos na forma normal de Skolen pode não ser (logicamente) equivalente à fórmula $G$ escrita na FNC prenex ou à fórmula $F$ original. + \end{itemize} + } + } + } + } + + +\end{document} diff --git a/1ano/2semestre/md/apontamentos/template/src/ua.pdf b/1ano/2semestre/md/apontamentos/template/src/ua.pdf new file mode 100755 index 0000000..460cb18 Binary files /dev/null and b/1ano/2semestre/md/apontamentos/template/src/ua.pdf differ