{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "7496f201",
   "metadata": {},
   "source": [
    "Teste\n",
    "### Definição Central\n",
    "\n",
    "Em Inteligência Artificial, um **modelo de consequência lógica** é um framework formal que garante que se uma sentença (uma conclusão) é derivada de uma base de conhecimento (KB) por um processo de inferência lógica, então ela deve ser **verdadeira em todos os mundos possíveis** onde a KB é verdadeira.\n",
    "\n",
    "Em termos mais simples para um agente:\n",
    "\n",
    "> Se o agente **sabe** que a Base de Conhecimento (KB) é verdadeira, e se `α` é uma **consequência lógica** de KB, então o agente pode **acreditar com total certeza** que `α` também é verdadeiro, sem precisar verificar diretamente.\n",
    "\n",
    "A notação para isso é:\n",
    "**KB ⊧ α**\n",
    "\n",
    "Lê-se: \"KB acarreta α\" ou \"α é consequência lógica de KB\".\n",
    "\n",
    "---\n",
    "\n",
    "### Como isso se Relaciona com um Agente Lógico em Lógica Proposicional?\n",
    "\n",
    "Imagine um agente lógico como um solucionador de problemas que usa regras. O modelo de consequência lógica é o \"manual de instruções\" que diz ao agente como ele pode pensar de forma correta e segura.\n",
    "\n",
    "#### 1. Para o Agente, a Consequência Lógica é Ação e Crença\n",
    "\n",
    "*   **Crença Segura:** Quando um agente deriva uma nova proposição `α` que é consequência lógica de sua KB, ele pode adicionar `α` à sua KB como um novo fato, sabendo que sua base de conhecimento permanece consistente e correta. Ele não está \"chutando\"; está seguindo uma garantia matemática.\n",
    "*   **Tomada de Decisão:** A ação que o agente realiza é frequentemente a consequência lógica de suas percepções e do seu conhecimento interno. Se a KB implica `Ligar_Aspersor`, então a ação do agente será ligar o aspersor.\n",
    "\n",
    "#### 2. O Processo Prático no Agente: Inferência vs. Consequência\n",
    "\n",
    "É crucial distinguir dois conceitos:\n",
    "\n",
    "*   **Consequência Lógica (KB ⊧ α):** É um conceito **semântico**. Ele se preocupa com a **verdade** e com **todos os modelos possíveis** (todas as combinações possíveis de valores verdadeiro/falso para as proposições). Ele pergunta: \"Em toda situação onde KB é verdadeira, `α` também é obrigatoriamente verdadeira?\"\n",
    "*   **Inferência (KB ⊢ α):** É um conceito **sintático**. É um **processo mecânico** (um algoritmo) que deriva novas sentenças a partir das antigas, aplicando **regras de inferência** (como Modus Ponens, Resolução). Ele pergunta: \"Posso provar `α` a partir de KB seguindo estas regras?\"\n",
    "\n",
    "A magia de um agente lógico bem projetado está na **correção** e **completude** do seu algoritmo de inferência:\n",
    "\n",
    "*   **Correção (Soundness):** Se o algoritmo de inferência deriva `α` da KB (`KB ⊢ α`), então `α` é de fato uma consequência lógica (`KB ⊧ α`).  \n",
    "    *\"Tudo o que é provável, é verdade.\"*  \n",
    "    → Isso é essencial para a **segurança**. O agente nunca acreditará em algo falso.\n",
    "\n",
    "*   **Completude (Completeness):** Se `α` é uma consequência lógica da KB (`KB ⊧ α`), então o algoritmo de inferência pode derivar `α` (`KB ⊢ α`).  \n",
    "    *\"Tudo o que é verdade, é provável.\"*  \n",
    "    → Isso é essencial para a **potência**. O agente pode derivar todo fato que se segue logicamente do seu conhecimento.\n",
    "\n",
    "Um agente ideal usa um algoritmo de inferência que é **correto e completo**. Isso significa que o processo mecânico de inferência (`⊢`) é uma contrapartida perfeita do conceito abstrato de verdade (`⊧`).\n",
    "\n",
    "---\n",
    "\n",
    "### Exemplo Prático com um Agente Proposicional\n",
    "\n",
    "**Contexto:** Um agente controla a segurança de uma casa.\n",
    "\n",
    "**Base de Conhecimento (KB):**\n",
    "1.  `Janela_Aberta → Alarme_Desativado`\n",
    "2.  `Movimento_Detectado ∧ ¬Alarme_Desativado → Soar_Alarme`\n",
    "3.  `Janela_Aberta` (o agente percebeu que a janela está aberta)\n",
    "\n",
    "**Pergunta (Consulta):** `Soar_Alarme` é consequência lógica? O agente deve soar o alarme?\n",
    "\n",
    "#### Usando o Modelo de Consequência Lógica:\n",
    "\n",
    "1.  **Análise Semântica (⊧):** Precisamos verificar se, em todos os mundos onde (1), (2) e (3) são Verdadeiros, `Soar_Alarme` também é Verdadeiro.\n",
    "    *   De (3) `Janela_Aberta = V` e (1) `Janela_Aberta → Alarme_Desativado = V`, concluímos que `Alarme_Desativado = V`.\n",
    "    *   Logo, `¬Alarme_Desativado = F`.\n",
    "    *   Na premissa (2), temos `Movimento_Detectado ∧ F → Soar_Alarme`. Independente do valor de `Movimento_Detectado` (V ou F), a premissa inteira será **V** (devido à tabela-verdade do \"→\"). No entanto, isso **não nos força a concluir que `Soar_Alarme = V`**. A regra (2) só seria ativada se `Movimento_Detectado ∧ ¬Alarme_Desativado` fosse Verdadeiro, o que não é o caso.\n",
    "    *   Portanto, **KB ⊭ Soar_Alarme**. Soar o alarme **não** é uma consequência lógica.\n",
    "\n",
    "2.  **Ação do Agente:** Como `Soar_Alarme` não é consequência lógica, o agente **não** deve ativar o alarme. Sua base de conhecimento atual não justifica essa ação.\n",
    "\n",
    "**Agora, suponha que o sensor de movimento é acionado. O agente adiciona:**\n",
    "4.  `Movimento_Detectado`\n",
    "\n",
    "**Nova KB:** (1), (2), (3), (4).\n",
    "*   De (3) e (1), ainda temos `Alarme_Desativado = V` e `¬Alarme_Desativado = F`.\n",
    "*   De (4), `Movimento_Detectado = V`.\n",
    "*   Na premissa (2), `V ∧ F → Soar_Alarme`. Isso ainda é **V**, mas novamente, não força `Soar_Alarme = V`.\n",
    "*   **KB ⊭ Soar_Alarme**. O agente **ainda não** deve soar o alarme! A janela aberta desativou o alarme, então o movimento não o trigger.\n",
    "\n",
    "Este exemplo mostra como o modelo de consequência lógica **previne que o agente tome ações incorretas** com base em informações parciais.\n",
    "\n",
    "### Resumo para o Agente Lógico\n",
    "\n",
    "Para um agente lógico baseado em lógica proposicional, o modelo de consequência lógica é:\n",
    "\n",
    "*   **A Garantia de Rationalidade:** É o princípio que assegura que as crenças e ações do agente são uma extensão lógica e necessária de seu conhecimento, não um palpite.\n",
    "*   **A Interface entre Semântica e Sintaxe:** Ele conecta a noção abstrata de \"verdade no mundo\" (`⊧`) com o processo mecânico de \"prova\" (`⊢`) realizado pelo algoritmo de inferência do agente.\n",
    "*   **O Fundamentoda Previsibilidade:** É isso que nos permite prever, modelar e confiar no comportamento de um agente lógico antes mesmo de implementá-lo.\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "aacd6e8c",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0da68b11",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
