Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
LÓGICA COMPUTACIONAL;
:: TRABALHO ::
PROVA DA TORRE DE HANOI ATRAVÉS DO SISTEMA PVS.
pvs(1):
pvs(2):
Installing rewrite rule singleton_rew
moves_is_exp :
|-------
{1} FORALL (x: posint): moves(x) = expt(2, x) - 1
|-------
{1} x!1 > 0
{2} moves(x!1) = expt(2, x!1) - 1
A fórmula indicada deve ser universalmente quantificada, como formula conseqüente. O nome
da variável x deve ser quantificada no nível mais externo desta fórmula. A variável vinculado
deve ser do tipo bound, ou seja, deve incluir, como um supertipo natural ou um tipo de dados
PVS abstrata para o esquema de indução esquema para ser selecionado automaticamente.
Rerunning step: (typepred x!1)
Adding type constraints for x!1,
this simplifies to:
moves_is_exp.1 :
moves_is_exp.2 :
|-------
{1} 0 > 0 IMPLIES moves(0) = expt(2, 0) - 1
Se a expressão é uma lista de expressões e1;::: pt, então para cada um EI, e para cada predicado
typeconstraint p do tipo em ei, uma fórmula antecedente da forma p (EI) é introduzido. Um
predicado P é um predicado de tipo de restrição em um tipo fx: JQ (x) g onde se quer pq ou p, é um
tipo predicado de restrição.
{-1} 0 > 0
|-------
{1} moves(0) = expt(2, 0) - 1
Realiza simplificação proposicional sobre o objeto atual retornando apenas as submetas que não são
axiomas proposicionais e não tem nenhum conectivos proposicionais de nível superior. Usando
prop indiscriminadamente pode levar a uma grande combinatória de casos provocados por dividir
conjunções irrelevante. Este, por sua vez pode levar a uma série de submetas exigindo provas
idênticas para prop.
moves_is_exp.3 :
|-------
{1} FORALL j:
(j > 0 IMPLIES moves(j) = expt(2, j) - 1) IMPLIES
j + 1 > 0 IMPLIES moves(j + 1) = expt(2, j + 1) - 1
Aqui se faz um checagerm geral que como estratégia é freqüentemente utilizada para completar
automaticamente uma ramo de prova ou para aplicar todas as simplificações óbvias até que eles não
se apliquem mais. A primeira estratégia aplicada é install: para instalar e reescreve as teorias dadas
e reescrever as regras, juntamente com todas as definições relevantes dos dados subgoal. Em
seguida,
aplica bddsimp seguido por afirmação para realizar o primeiro nível de simplificação.
|-------
{1} (j!1 > 0 IMPLIES moves(j!1) = expt(2, j!1) - 1) IMPLIES
j!1 + 1 > 0 IMPLIES moves(j!1 + 1) = expt(2, j!1 + 1) - 1
Para a fórmula do atual subseqüente indicada por um parametro ou é uma antecedente fórmula da
forma (∃ x 1, xn:... A) ou uma fórmula conseqüente da forma (∀ x 1, xn:... A), e constantes é uma
lista de novos identificadores da forma (c 1 ... cn), então a regra Skolem gera um subgoal onde a
fórmula indicada foi substituído por um [c 1 / x 1. . . , c / n] x n. Quando o parametro é *, a primeira
fórmula sequente adequada (ou seja, quer uma fórmula ou um antecedente existencial de uma
fórmula universal conseqüente com n variáveis de ligação) é escolhido para o eliminição do
quantificador.
Realiza simplificação proposicional sobre o objeto atual retornando apenas as submetas que não são
axiomas proposicionais e não tem nenhum conectivos proposicionais de nível superior. Usando
prop indiscriminadamente pode levar a uma grande combinatória de casos provocados por dividir
conjunções irrelevante. Este, por sua vez pode levar a uma série de submetas exigindo provas
idênticas para prop.
Se a expressão é uma lista de expressões e1;::: pt, então para cada um EI, e para cada predicado
typeconstraint p do tipo em ei, uma fórmula antecedente da forma p (EI) é introduzido. Um
predicado P é um predicado de tipo de restrição em um tipo fx: JQ (x) g onde se quer pq ou p, é um
tipo predicado de restrição
{-1} j!1 = 0
[-2] j!1 >= 0
[-3] moves(j!1) = expt(2, j!1) - 1
[-4] j!1 + 1 > 0
|-------
[1] IF j!1 = 0 THEN 1 ELSE 1 + 2 * moves(j!1) ENDIF = expt(2, 1 + j!1) - 1
[-1] j!1 = 0
[-2] j!1 >= 0
[-3] moves(j!1) = expt(2, j!1) - 1
{-4} 1 + j!1 > 0
|-------
{1} 1 = expt(2, 1 + j!1) - 1
e reais.
Rerunning step: (replace -1)
Replacing using formula -1,
this simplifies to:
moves_is_exp.3.1.1 :
[-1] j!1 = 0
{-2} 0 >= 0
{-3} moves(0) = expt(2, 0) - 1
{-4} 1 + 0 > 0
|-------
{1} 1 = expt(2, 1 + 0) - 1
A regra de substituição é geralmente usado para reescrever alguns seleção das fórmulas
na atual subsequente usando a fórmula de igualdade de um antecedente da forma L = r.
A fórmula de igualdade para ser usado é indicado pelo argumento. Os alvos das regravações estão
listados no argumento. Quando a direção do argumento é RL (denotando "da direita para a esquerda
"), as ocorrências alvo de r na sequentes são reescrito para l. Caso contrário, quando o parâmetro de
direção é diferente do RL, as ocorrências alvo de l são reescritas para r.
[-1] j!1 = 0
[-2] 0 >= 0
[-3] moves(0) = expt(2, 0) - 1
[-4] 1 + 0 > 0
|-------
{1} 1 = 2 * expt(2, 0) - 1
Expande e simplifica a definição do nome dado a uma ocorrência. Se a ocorrência não é dada, então
todas as instâncias de definição são expandidas. A ocorrência é dado um número n referentes à
ocorrência n da função contando os símbolo da esquerda, ou como uma lista de tais números. Se a
simplificação é t, então a expansão qualquer dentro de uma fórmula subseqüentes ocorre apenas se a
forma que o expandiu pode ser simplificado (por meio dos procedimentos de decisão). Se
simplificação for necessária para controlar a expansão infinita. no caso. expandir é usado
repetidamente dentro de uma mesma estratégia.
[-1] j!1 = 0
[-2] 0 >= 0
[-3] moves(0) = expt(2, 0) - 1
[-4] 1 + 0 > 0
|-------
{1} TRUE
moves_is_exp.3.1.2 :
Expande e simplifica a definição do nome dado a uma ocorrência. Se a ocorrência não é dada, então
todas as instâncias de definição são expandidas. A ocorrência é dado um número n referentes à
ocorrência n da função contando os símbolo da esquerda, ou como uma lista de tais números. Se a
simplificação é t, então a expansão qualquer dentro de uma fórmula subseqüentes ocorre apenas se a
forma que o expandiu pode ser simplificado (por meio dos procedimentos de decisão). Se
simplificação for necessária para controlar a expansão infinita. no caso. expandir é usado
repetidamente dentro de uma mesma estratégia
e reais.
A regra de substituição é geralmente usado para reescrever alguns seleção das fórmulas
na atual subsequente usando a fórmula de igualdade de um antecedente da forma L = r.
A fórmula de igualdade para ser usado é indicado pelo argumento. Os alvos das regravações estão
listados no argumento. Quando a direção do argumento é RL (denotando "da direita para a esquerda
"), as ocorrências alvo de r na sequentes são reescrito para l. Caso contrário, quando o parâmetro de
direção é diferente do RL, as ocorrências alvo de l são reescritas para r.
moves_is_exp.3.2 :
e reais.
Se a expressão é uma lista de expressões e1;::: pt, então para cada um EI, e para cada predicado
typeconstraint p do tipo em ei, uma fórmula antecedente da forma p (EI) é introduzido. Um
predicado P é um predicado de tipo de restrição em um tipo fx: JQ (x) g onde se quer pq ou p, é um
tipo predicado de restrição.
Aqui se faz um checagerm geral que como estratégia é freqüentemente utilizada para completar
automaticamente uma ramo de prova ou para aplicar todas as simplificações óbvias até que eles não
se apliquem mais. A primeira estratégia aplicada é install: para instalar e reescreve as teorias dadas
e reescrever as regras, juntamente com todas as definições relevantes dos dados subgoal. Em
seguida,
aplica bddsimp seguido por afirmação para realizar o primeiro nível de simplificação.
Q.E.D.
nil
pvs(24):
Installing rewrite rule singleton_rew