Skip to content

Instantly share code, notes, and snippets.

@denilsonsa
Last active May 1, 2024 11:52
Show Gist options
  • Save denilsonsa/50e83a12a4d3d230ff172d0d37085168 to your computer and use it in GitHub Desktop.
Save denilsonsa/50e83a12a4d3d230ff172d0d37085168 to your computer and use it in GitHub Desktop.
9 verdades e 1 mentira, testadas usando pythonlogica
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "",
"signature": "sha256:14ff5380923bc062ffa073f35da931eac6cb61f1f86d0d3ed028dcef4d274e5e"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Imagem recebida via Internet](http://i.imgur.com/vB66nRk.jpg)\n",
"\n",
"9 verdades e 1 mentira:\n",
"\n",
"1. P \u2192 (P \u2228 Q)\n",
"2. (P \u2227 Q) \u2192 P\n",
"3. (P \u2227 (P \u2192 Q)) \u2192 Q\n",
"4. \u00ac(P \u2192 Q) \u2192 (P \u2227 \u00acQ)\n",
"5. (P \u2192 Q) \u2192 (\u00acQ \u2192 \u00acP)\n",
"6. ((P \u2228 Q) \u2227 \u00acP) \u2192 Q\n",
"7. ((P \u2192 Q) \u2227 Q) \u2192 P\n",
"8. ((P \u2228 \u00acQ) \u2227 Q) \u2192 P\n",
"9. ((P \u2227 Q) \u2227 (P \u2192 R) \u2227 (\u00acQ \u2228 S)) \u2192 (R \u2227 S)\n",
"10. ((A \u2228 B) \u2227 (C \u2228 \u00acB)) \u2192 (A \u2228 C)"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# https://github.com/denilsonsa/pythonlogica\n",
"from logica import *\n",
"import string\n",
"criar_simbolos_no_namespace(string.ascii_uppercase, globals())"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"predicados = [\n",
" P > (P | Q),\n",
" (P & Q) > P,\n",
" (P & (P > Q)) > Q,\n",
" ~(P > Q) > (P & ~Q),\n",
" (P > Q) > (~Q > ~P),\n",
" ((P | Q) & ~P) > Q,\n",
" ((P > Q) & Q) > P,\n",
" ((P | ~Q) & Q) > P,\n",
" ((P & Q) & (P > R) & (~Q | S)) > (R & S),\n",
" ((A | B) & (C | ~B)) > (A | C)\n",
"]"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"for i, expr in enumerate(predicados):\n",
" print(\"{0:>2}. {1!s:<10} {2!s}\".format(i + 1, expr.formula().tautologia(), expr))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
" 1. Verdadeiro (~ P | (P | Q))\n",
" 2. Verdadeiro (~ (P & Q) | P)\n",
" 3. Verdadeiro (~ (P & (~ P | Q)) | Q)\n",
" 4. Verdadeiro (~ ~ (~ P | Q) | (P & ~ Q))\n",
" 5. Verdadeiro (~ (~ P | Q) | (~ ~ Q | ~ P))\n",
" 6. Verdadeiro (~ ((P | Q) & ~ P) | Q)\n",
" 7. Falso (~ ((~ P | Q) & Q) | P)\n",
" 8. Verdadeiro (~ ((P | ~ Q) & Q) | P)\n",
" 9. Verdadeiro (~ (((P & Q) & (~ P | R)) & (~ Q | S)) | (R & S))\n",
"10. Verdadeiro (~ ((A | B) & (C | ~ B)) | (A | C))\n"
]
}
],
"prompt_number": 3
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment