<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ruby Vault &#187; Lógica</title>
	<atom:link href="http://www.tbueno.com/blog/category/logica/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tbueno.com/blog</link>
	<description>Explorando o maravilhoso mundo de Ruby</description>
	<lastBuildDate>Tue, 24 Aug 2010 03:02:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>A Lógica Segundo Ruby</title>
		<link>http://www.tbueno.com/blog/ruby/2009/03/a-logica-segundo-ruby/</link>
		<comments>http://www.tbueno.com/blog/ruby/2009/03/a-logica-segundo-ruby/#comments</comments>
		<pubDate>Fri, 06 Mar 2009 20:54:34 +0000</pubDate>
		<dc:creator>bueno</dc:creator>
				<category><![CDATA[Lógica]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.tbueno.com/blog/?p=101</guid>
		<description><![CDATA[Preparando-me para o início do meu mestrado, me vi com uma vontade forte de rever meus materiais da faculdade. Logo veio a lembrança de como eu me divertia nas cadeiras de lógica. Pouca coisa eu ainda lembro de cabeça, e dessas, resolvi reproduzí-las à maneira Ruby: Silogismo Aristotélico O silogismo consiste no fato de duas [...]]]></description>
			<content:encoded><![CDATA[<p>Preparando-me para o início do meu mestrado, me vi com uma vontade forte de rever meus materiais da faculdade. Logo veio a lembrança de como eu me divertia nas cadeiras de lógica. Pouca coisa eu ainda lembro de cabeça, e dessas, resolvi reproduzí-las à maneira Ruby:</p>
<h2>Silogismo Aristotélico</h2>
<p>O silogismo consiste no fato de duas premissas inferirem, através de um termo em comum, na conclusão de uma terceira premissa também verdadeira.</p>
<p>&#8220;Todos os humanos são mortais&#8221;<br />
&#8220;Aristóteles é humano&#8221;<br />
-<br />
&#8220;Logo, Aristóteles é mortal&#8221;</p>
<pre class="brush: ruby">
#Todos os humanos são mortais
class Human
	self.module_eval do
  	define_method :mortal? do
    	true
	  end
 	end
end

#Aristóteles é humano
class Aristotle < Human
end

#logo...
a = Aristotle.new
a.mortal?     #=> true
</pre>
<h2>Lógica Proposicional</h2>
<p>Segundo o wikipedia:</p>
<blockquote><p>
Em lógica e matemática, uma lógica proposicional (ou cálculo sentencial) é um sistema formal no qual as fórmulas representam proposições que podem ser formadas pela combinação de proposições atômicas usando conectivos lógicos, e um sistema de regras de derivação que permite que certas fórmulas sejam estabelecidas como &#8220;teoremas&#8221; do sistema formal.
</p></blockquote>
<p>Dessa, os teoremas clássicos que me veem à cabeça são os seguintes:</p>
<p><span id="more-101"></span></p>
<h3>Dupla eliminação da negação</h3>
<pre class="brush: ruby">
#De ¬¬p, infere-se p
p = true
(not (not p))   #=> true
</pre>
<h3>Modus ponens (eliminação do condicional)</h3>
<pre class="brush: ruby">
#De p, (p → q), infere-se q.
p = true
if (p) and ( q = p);end
q            #=> true
</pre>
<h2>Exercícios de lógica</h2>
<p>Uma das coisas que me divertia antes da faculdade eram as tabelas-verdades, aonde era possível analisarmos uma fórmula para descobrir se ela era válida ou não. Um bom exercício para o cérebro é tentar descobrir se o resultado de uma fórmula é verdadeiro ou falso. Qual o resultado da expressão abaixo?</p>
<pre class="brush: ruby">
p = false
q = true
r = false

(!(q &#038; p) &#038;(r | q) | !((p &#038; r) |(r &#038; q)))
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.tbueno.com/blog/ruby/2009/03/a-logica-segundo-ruby/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
