Demonstração de Correção: Verificação, Assertões e Tripla de Hoare

4) Questões sobre o assunto

Questão 1 (Média): Qual afirmação descreve corretamente a verificação de programa?
1.50 Média

Resposta correta: C) Verificação busca assegurar que o programa segue suas especificações, por meio de testes ou demonstração de correção.

Justificativa: verificação foca em confirmar que o código está conforme especificações técnicas; validação verifica se atende às necessidades do usuário. A demonstração formal pode ser usada para fundamentar a verificação.

Questão 2 (Difícil): Na demonstração de correção, o que a tripla de Hoare expressa?
2.50 Difícil

Resposta correta: A) Uma tripla que expressa a pré-condição, o código e a pós-condição.

Justificativa: a tripla de Hoare é da forma {P} C {Q}, indicando que, se P é verdadeira antes de C, então Q é verdadeira após C.

Questão 3 (Difícil): O que descrevem as asserções (assertions) na verificação de código?
2.50 Difícil

Resposta correta: A) Predicados que descrevem condições esperadas em pontos do código (pré, intra e pós).

Observação: assertions são usados para especificar o que deve ser verdadeiro em pontos específicos do código durante a verificação.

Questão 4 (Extrema): Na tripla de Hoare para a atribuição X := E, qual é a relação entre a pré-condição R e a pós-condição U?
3.50 Extrema

Resposta correta: A) R é igual a U[X := E] (R é U com X substituído por E).

Justificativa: Pela axiomática de atribuição de Hoare, {Q[X := E]} X := E {Q} descreve a relação entre a pré-condição e a pós-condição após a atribuição.

Pontuação Total
0.00