SEQÜÊNCIAS: EXERCÍCIOS

RAUL H.C.LOPES

1. Introdução

Estas notas contêm exercícios sobre propriedades de seqüências. São requisitos para o entendimento dos mesmos:

• Lógica de primeira ordem

Todas as provas apresentadas usam lógica de primeira ordem e assumem os axiomas da iagualdade: reflexividade, simetria e transitividade. Além disso, elas são apresentadas no estilo de equational reasoning, como em [2]. As seguintes constantes lógicas são usadas com a definição usual:

– ∧, conjunção;

– ∨, disjunção;

– ⇒, implicação;

– ⇐, only if ;

– ∀, quantificador universal;

– ∃, quantificador existencial;

– =, igualde, que, usado sobre expressões lógicas, substitui equivalência;

– ⊢, relação de dedutibilidade:

Γ ⊢ α

de Γ é possível deduzir α.

– =^{△}, abreviação:

X =^{△} Y

X é um nome para Y: onde encontar X, coloque Y. Vale ressaltar que a igualdade é relação válida para qualquer

par de objetos do mesmo tipo.

• A notação de pontos de Curry, ver página 34 de [1] é utilizada para reduzir o uso de parênteses. Resumidamente, ela estabelece:

– São marcadores de pontuação (de agora em diante markers) ponto (.), dois pontos, e bullet (•), tendo força crescente nessa ordem.

– um marker à esquerda de um operador (relacional ou funcional, unário ou binário) fecha uma expressão (fecha um parênteses), cujo escopo se estende para a esquerda;

– um marker à direita de um operador (relacional ou funcional, unário ou binário) inicia uma expressão (abre um parênteses), cujo escopo se estende para a direita;

– o escopo de uma expressão obedece às seguintes leis:

(1) O escopo de uma expressão determinado por um marker respeita os tipos implícitos dos operadores que nela ocorrem.

(2) um marker colado a ⊢ ou =^{△} tem prioridade sobre qualquer outro marker.

(3) Um marker colado a uma constante lógica tem prioridade sobre qualquer outro marker colado a operadores (relacionais ou funcionias) não lógicos.

(4) As constantes lógicas têm prioridade sobre outros operadoes.

(5) Um marker tem prioridade sobre outro markerde mesma força situado á direita, desde que sejam respeitadas as regras anteriores.

2. Seqüências

Uma seqüência de elementos de um tipo A é uma seqüência vazia (denotada por ⊥) ou resultado de adicionar um elemento de A a uma seqüência de elementos de A. Os axiomas a seguir definem seqüências de elementos de A, denotada seq.A:

• ⊥ ∈ seq.A

• (a ◁ x) ∈ seq.A se x ∈ seq.A ∧ a ∈ A

• fecho universal. Assumindo que x, y ∈ seq.A e que a, b ∈ A, os seguintes axiomas

tratam a igualdade sobre seqüências.

• ⊥ ≠ (a ◁ x)

• (a ◁ x) = (b ◁ y) .=. a = b ∧ x = y O princípio da indução sobre seqüências estabelece que se P é pro-

priedade sobre seqüências:

(∀x : x ∈ seq.A : P.x) =

(P (⊥) ∧ (∀x : x ∈ seq.A : ∀a : a ∈ A : P (x) ⇒ P (a ◁ x)))

As equações a seguir definem o operador snoc (denotado ▷, em oposição, logicamente ao operador cons, ◁).

• ⊥ ▷ a .=. a ◁ ⊥

• (a ◁ x) ▷ b .=. a ◁ (x ▷ b) As equações a seguir definem um operador cat (denotado ˆ ˆ ˆ ˆ ˆˆ ) para

concatenar duas seqüências.

• ⊥ˆ ˆ ˆ ˆ ˆˆ y = y

• (a ◁ x)ˆ ˆ ˆ ˆ ˆˆ y = .a ◁ (xˆ ˆ ˆ ˆ ˆˆ y) Pertinência em uma seqüência é definida a seguir.

• a ∉ ⊥

• a ∈ (b ◁ x) =. a = b ∨ a ∈ x A definição de inserção ordenada em uma seqüência segue. Assume-

se que o tipo A é totalmente ordenado com os operadores < e ≤ tendo o seu significado usual.

• a ⇝ ⊥ = (a ◁ ⊥)

• a ≤ b ⇒ (a ⇝ (b ◁ x) =. a ◁ (b ◁ x))

• a > b ⇒ (a ⇝ (b ◁ x) =. b ◁ (a ⇝ x)) A seguir, a definição de ordenação crescente não estrita.

• (⊥) ↗

• (a ◁ ⊥) ↗

• (a ◁ (b ◁ x)) ↗ .=. a ≤ b ∧ (b ◁ x) ↗

Exercício 1. Prove que

b < a ∧ (∀c : c ∈ x : b ≤ c) .⇒. ∀d : d ∈ a ⇝ x : b ≤ d

Prova.

∀d : d ∈ a ⇝ x : b ≤ d
⇐⟨por lema 5⟩
∀d : d = a ∨ d ∈ x : b ≤ d
=⟨range de ∀⟩
b ≤ a ∧ ∀d : d ∈ x : b ≤ d
⇐⟨aritmética⟩
b < a ∧ ∀d : d ∈ : b ≤ d
□

Exercício 2. Prove que

(b ◁ x) ↗⇒ x ↗

Prova.

4 RAUL H.C.LOPES

⟨Por casos de x⟩ :

⟨Caso [x := ⊥]⟩ ⊥. ↗

=⟨axioma de ↗⟩

true

⟨Caso [x := c ◁ z]⟩

(c ◁ z) ↗

⇐⟨Eliminação de ∧⟩

b ≤ c ∧ (c ◁ z) ↗

=⟨terceiro axioma de ↗⟩

(b ◁. c ◁ z) ↗

□

Exercício 3. Prove que

(∀a : a ∈ x : b ≤ a) ∧ x. ↗ .⇒. b ◁ x. ↗

Prova.

SEQÜÊNCIAS: EXERCÍCIOS 5

⟨Por casos de x⟩ :

b ◁ x. ↗

⇐⟨Eliminação de ∧⟩

b ◁ x. ↗ ∧ x = ⊥ = b ◁ ⊥. ↗ ∧ x = ⊥

=⟨segundo axioma de ↗⟩

true ∧ x = ⊥

=⟨identidade de∧⟩

x = ⊥ = ⟨Caso [x := ⊥]⟩ true ⟨caso[x := c ◁ z]⟩ b ◁ x. ↗

⇐⟨Eliminação de ∧⟩

b ◁ x. ↗ ∧ x = .c ◁ z = (b ◁. c ◁ z) ↗ ∧ x =. c ◁ z

=⟨terceiro axioma de ↗⟩

b ≤ c ∧ c ◁ z. ↗ ∧ x =. c ◁ z

⇐⟨Eliminação de ∧⟩

b ≤ c ∧ (∀a : a ∈ z : b ≤ a) ∧ c ◁ z. ↗ ∧ x =. c ◁ z = (∀a : a = c ∨ a ∈ z : b ≤ a) ∧ c ◁ z. ↗ ∧ x =. c ◁ z

=⟨segundo axioma de ∈⟩

(∀a : a ∈. c ◁ z : b ≤ a) ∧ c ◁ z. ↗ ∧ x =. c ◁ z = (∀a : a ∈. x : b ≤ a) ∧ x. ↗ ∧ x =. c ◁ z

=⟨premissa do teorema e caso [x := c ◁ z]⟩

true

□

Exercício 4. Prove que

∀b : b ∈ A : (b ◁ x) ↗⇒ ∀a : a ∈ x : b ≤ a

Prova.

Por inducção: trivial quando x = ⊥.

Assuma R.x =^{△} ∀b : b ∈ A : (b ◁ x) ↗⇒ ∀a : a ∈ x : b ≤ a.

Prove R.∀◁ : b : b ∈ Acx =^{△} (b ◁ (c ◁ x)) ↗⇒ ∀a : a ∈ (c ◁ x) : b ≤ a.

Assuma b ◁ (c ◁ x) ↗.

∀a : a ∈. c ◁ x : d ≤ a
⇐⟨por R.x⟩
(d ◁ x) ↗
⇐⟨Eliminação de ∧⟩
d ≤ c ∧ (d ◁ x) ↗
=⟨terceiro axioma de ↗⟩
d ◁ (c ◁ x) ↗
=⟨premissa do teorema⟩
true

□

Exercício 5. Prove que

(a ∈ (b ⇝ x)) ⇒ a = b ∨ a ∈ x

Prova.

Por indução.

Trivial quando x = ⊥.

Assuma R.x =^{△} (a ∈ (b ⇝ x)) ⇒ a = b ∨ a ∈ x

Prove R.c ◁ x =^{△} (a ∈ (b ⇝ (c ◁ x))) ⇒ a = b ∨ a ∈ (c ◁ x)

Prova por casos, considerando b ≤ c e c < b.

SEQÜÊNCIAS: EXERCÍCIOS 7

Caso b ≤ c.

a = b ∨ a ∈. c ◁ x

=⟨segundo axioma de ∈⟩

a ∈. b ◁ (c ◁ x)

⇐⟨Eliminação de ∧⟩

b ≤ c ∧ a ∈. b ◁ (c ◁ x)

⇐⟨segundo axioma de ⇝⟩

b ≤ c ∧ a ∈ (b ⇝ (c ◁ x))

=⟨premissa do teorema e caso [b ≤ c]⟩

true

Caso c < b.

a = b ∨ a ∈. c ◁ x

=⟨segundo axioma de ∈⟩

a = b ∨ a = c ∨ a ∈ x

=⟨comutatividade de ∨⟩

a = c ∨ (a = b ∨ a ∈ x)

⇐⟨R.x⟩

a = c ∨ a ∈ (b ⇝ x)

=⟨segundo axioma de ∈⟩

a ∈ c ◁ (b ⇝ x)

⇐Eliminação de ∧

c < b ∧ a ∈ c ◁ (b ⇝ x)

=⟨segundo axioma de ⇝⟩

c < b ∧ a ∈ (b ⇝ (c ◁ x))

=⟨premissa e caso c < b⟩

true

□

Exercício 6. Prove que

x. ↗⇒ ∀a : a ∈ A : (a ⇝ x) ↗

Prova. Por indução.

Caso base, x = ⊥, étrivial.

Assuma R.x =^{△} x. ↗⇒ ∀a : a ∈ A : (a ⇝ x) ↗

Prove R.c ◁ x =^{△} (c ◁ x) ↗⇒ ∀a : a ∈ A : (a ⇝ (c ◁ x)) ↗

Assuma (c ◁ x) ↗ Prove (a ⇝ (c ◁ x)) ↗ Prova por casos: a ≤ c e a > c. Caso a ≤ c é trivial. Caso a > c.

(a ⇝ (c ◁ x)) ↗

⇐⟨Eliminação de ∧⟩

c < a ∧ (a ⇝ (c ◁ x)) ↗

=⟨terceiro axioma de ⇝⟩

c < a ∧ (c ◁ (a ⇝ x)) ↗

⇐⟨por lema 1⟩

b < a ∧ ((∀c : c ∈ a ⇝ x : b ≤ c) ∧ (a ⇝ x) ↗)

⇐⟨por lema 2 e por R.x⟩

b < a ∧ (∀c : c ∈ a ⇝ x : b ≤ c) ∧ b ◁ x. ↗

=⟨por lema 5⟩

b < a ∧ (∀c : c ∈ x : b ≤ c ∧ b ◁ x. ↗

⇐⟨por lema 4⟩

b < a ∧ b ◁ x. ↗

=⟨premissas⟩

true

□

Referências

[1] Haskell B. Curry, Foundations of mathematical logic, Dover Publications, Inc., 1977.

[2] David Gries and Fred B.Schneider, A logical approach to discrete mathematics, Springer-Verlag, 1993.