Capítulo 1 — Raciocínio matemático
Mapa da aula
Aula 01 publicada. Mapa, exemplo, EX001.
flowchart TD
N0["1.1 O caso e a lógica"]
N1["1.2 Tabelas-verdade para políticas"]
N2["Laboratório — Duas leituras de uma regra de reembols"]
N3["1.3 Lacunas e contradições"]
N4["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4
N4 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX001"]
Desenho lógico
flowchart LR
N0["1.1 O caso e a lógica"]
N1["1.2 Tabelas-verdade para políticas"]
N2["Laboratório — Duas leituras de uma regra de reembols"]
N3["1.3 Lacunas e contradições"]
N4["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX001"]
[1.1 O caso e a lógica]
|
v
[1.2 Tabelas-verdade para políticas]
|
v
[Laboratório — Duas leituras de uma regra de reembols]
|
v
[1.3 Lacunas e contradições]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX001]
Objetivos de aprendizagem
Você vai (1) expressar políticas de segurança como enunciados lógicos; (2) testar uma política com uma tabela-verdade; (3) identificar contradições e lacunas em regras escritas.
1.1 O caso e a lógica
Lucas Haddon é estudante do primeiro ano de um bacharelado de quatro anos na fictícia Ashgrove University, orientado pelo Dr. Marco Bellini. A partir do segundo ano, ele também trabalha meio período na fictícia Fernway Outdoor Co-operative, uma varejista de propriedade dos associados, com uma loja online, um armazém e duas lojas físicas, sob a líder de segurança de TI Hannah Osei. Todas as pessoas, organizações e números aqui são sintéticos. O Dr. Bellini começa pela lógica porque as políticas de segurança são enunciados lógicos. Uma regra como a equipe pode emitir reembolsos se for gerente de loja ou se o valor for inferior a vinte libras e houver recibo pode ser escrita com AND, OR e NOT, e então verificada com precisão.
1.2 Tabelas-verdade para políticas
Lucas escreve a regra de reembolso como uma fórmula com três condições: M para gerente, S para valor pequeno e R para recibo. A frase em inglês é ambígua: a exigência do recibo também se aplica aos gerentes? Ele escreve as duas leituras, M OR (S AND R) e (M OR S) AND R, e monta uma tabela-verdade para cada uma. O laboratório abaixo imprime as duas tabelas e as linhas em que elas divergem. Essas linhas são casos reais, como um gerente reembolsando sem recibo, em que funcionários que seguem leituras diferentes agiriam de modo diferente. A lógica expõe a ambiguidade antes que ela vire uma discussão no caixa.
Laboratório — Duas leituras de uma regra de reembolso
# Truth tables for two readings of a refund policy (M manager, S small amount, R receipt).
from itertools import product
a = lambda M, S, R: M or (S and R)
b = lambda M, S, R: (M or S) and R
diff = 0
print(" M S R | A B")
for M, S, R in product([0, 1], repeat=3):
x, y = int(a(M, S, R)), int(b(M, S, R)); diff += x != y
print(f" {M} {S} {R} | {x} {y}{' <- differ' if x != y else ''}")
print("rows that differ:", diff)
Execute com python3 lab_truth.py. Saída verificada:
M S R | A B
0 0 0 | 0 0
0 0 1 | 0 0
0 1 0 | 0 0
0 1 1 | 1 1
1 0 0 | 1 0 <- differ
1 0 1 | 1 1
1 1 0 | 1 0 <- differ
1 1 1 | 1 1
rows that differ: 2
1.3 Lacunas e contradições
As políticas também contêm lacunas, em que nenhuma regra se aplica, e contradições, em que duas regras dão respostas opostas. O rascunho da política de acesso remoto da Fernway diz que os terceirizados devem usar a VPN e que os scanners do armazém nunca usam a VPN; ele não diz nada sobre terceirizados que fazem manutenção nos scanners. Lucas lista as combinações sistematicamente e encontra esse caso. A enumeração sistemática é um hábito matemático simples, mas capta as situações que a leitura informal deixa passar. Ele recomenda acrescentar uma regra explícita e um padrão: tudo o que não for explicitamente permitido é negado, o padrão fail-safe de Saltzer e Schroeder (1975).
Exemplo resolvido
Lucas formaliza uma regra de reembolso de duas maneiras, encontra as linhas em que as leituras divergem e identifica, numa política de acesso remoto, um caso não coberto de terceirizados e scanners.
Caso sintético. A Ashgrove University, a Fernway Outdoor Co-operative, Lucas, Hannah e o Dr. Bellini são inventados; Saltzer e Schroeder (1975) é real.
Erros e limites
Políticas reais incluem contexto que as fórmulas omitem, como emergências. A enumeração cresce rapidamente com muitas condições.
Exercícios
-
EX001 — Duas leituras. Escreva em lógica as duas leituras da regra de reembolso. Rubrica: 3 = M OR (S AND R) e (M OR S) AND R;; 2 = uma;; 1 = vago;; 0 = nenhuma.
-
EX002 — Linhas divergentes. Segundo o laboratório, em quantas linhas as leituras divergem, e o que elas têm em comum? Rubrica: 3 = 2 linhas, ambas um gerente sem recibo;; 2 = contagem e padrão;; 1 = vago;; 0 = nenhuma.
-
EX003 — Lacuna da política. Que lacuna Lucas encontrou na política de acesso remoto? Rubrica: 3 = terceirizados fazendo manutenção nos scanners do armazém;; 2 = caso;; 1 = vago;; 0 = nenhuma.
Síntese
Escrever as políticas como lógica revela ambiguidades, lacunas e contradições antes que elas causem decisões inconsistentes.
Continue estudando — aula 01 (capítulo 01 de 40)
← Início do curso · Índice das aulas · Capítulo 02 →
Continue para a próxima aula já escrita.