semântica do pvs: tipos dependentes e aplicaçõesayala/tcgroup/andreseminf.pdf · semˆantica do...
TRANSCRIPT
![Page 1: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/1.jpg)
II Seminario Informal (mas Formal)
Semantica do PVS: Tipos Dependentes e Aplicacoes
Andre Luiz Galdino1
Universidade de BrasıliaDepartamento de MatematicaGrupo Teoria da Computacao
1Liberado para cursar doutorado peloDepartamento de Matematica
Campus de CatalaoUniversidade Federal de Goias
28 de Outubro de 2004
Andre Luiz Galdino Universidade de Brasılia
![Page 2: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/2.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
O que e PVS?
O PVS ( Prototype Verification System) e um ambiente paraespecificacao e verificacao semi-automatica.
Desenvolvido na decada de 80 pelo SRI International ComputerScience Laboratory, o PVS e baseado sobre uma logica fortementetipada de ordem-superior, e possui um verificador de provasbaseado sobre calculos sequentes que combina decisoes deprocedimento e estrategias.
Andre Luiz Galdino Universidade de Brasılia
![Page 3: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/3.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
O que e PVS?
O PVS ( Prototype Verification System) e um ambiente paraespecificacao e verificacao semi-automatica.
Desenvolvido na decada de 80 pelo SRI International ComputerScience Laboratory, o PVS e baseado sobre uma logica fortementetipada de ordem-superior, e possui um verificador de provasbaseado sobre calculos sequentes que combina decisoes deprocedimento e estrategias.
Andre Luiz Galdino Universidade de Brasılia
![Page 4: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/4.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
O que e PVS?
O PVS ( Prototype Verification System) e um ambiente paraespecificacao e verificacao semi-automatica.
Desenvolvido na decada de 80 pelo SRI International ComputerScience Laboratory, o PVS e baseado sobre uma logica fortementetipada de ordem-superior, e possui um verificador de provasbaseado sobre calculos sequentes que combina decisoes deprocedimento e estrategias.
Andre Luiz Galdino Universidade de Brasılia
![Page 5: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/5.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Universo Basico U
Para definir a semantica precisamos de um universo que contem osconjuntos 2 e IR e e fechado com respeito a produtos cartesianos,X × Y , e potencias de conjuntos, ℘(A).
U0 = 2, IR
Ui+1 = Ui ∪ X × Y |X ,Y ∈ Ui ∪ XY |X ,Y ∈ Ui ∪⋃
X∈Ui
℘(X )
Uω =⋃ı<ω
Ui
U = Uω
Andre Luiz Galdino Universidade de Brasılia
![Page 6: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/6.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Universo Basico U
Para definir a semantica precisamos de um universo que contem osconjuntos 2 e IR e e fechado com respeito a produtos cartesianos,X × Y , e potencias de conjuntos, ℘(A).
U0 = 2, IR
Ui+1 = Ui ∪ X × Y |X ,Y ∈ Ui ∪ XY |X ,Y ∈ Ui ∪⋃
X∈Ui
℘(X )
Uω =⋃ı<ω
Ui
U = Uω
Andre Luiz Galdino Universidade de Brasılia
![Page 7: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/7.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Pre-tipos
Os pre-tipos da teoria de tipos simples incluem:
I os tipos basicos bool e real;
I uma funcao pre-tipo que e construıda como [A→ B], com Ae B pre-tipos;
I um produto de pre-tipos que e construıdo como [A1,A2], comA1 e A2 pre-tipos.
Andre Luiz Galdino Universidade de Brasılia
![Page 8: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/8.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Pre-tipos
Os pre-tipos da teoria de tipos simples incluem:
I os tipos basicos bool e real;
I uma funcao pre-tipo que e construıda como [A→ B], com Ae B pre-tipos;
I um produto de pre-tipos que e construıdo como [A1,A2], comA1 e A2 pre-tipos.
Andre Luiz Galdino Universidade de Brasılia
![Page 9: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/9.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Pre-tipos
Os pre-tipos da teoria de tipos simples incluem:
I os tipos basicos bool e real;
I uma funcao pre-tipo que e construıda como [A→ B], com Ae B pre-tipos;
I um produto de pre-tipos que e construıdo como [A1,A2], comA1 e A2 pre-tipos.
Andre Luiz Galdino Universidade de Brasılia
![Page 10: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/10.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Pre-termos
Os pretermos da linguagem consistem de:
I constantes: c , TRUE , FALSE
I variaveis: x : VAR T onde T e um pre-tipo
I pares: 〈a1, a2〉 onde cada ai e um pre-termo
I projecoes: pi a onde i ∈ 1, 2 e a e um par
I aplicacoes: f a onde f e a sao pre-termos
I abstracoes: λ(x : T ) : a onde T e um pre-tipo e a e umpre-termo
Andre Luiz Galdino Universidade de Brasılia
![Page 11: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/11.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Pre-termos
Os pretermos da linguagem consistem de:
I constantes: c , TRUE , FALSE
I variaveis: x : VAR T onde T e um pre-tipo
I pares: 〈a1, a2〉 onde cada ai e um pre-termo
I projecoes: pi a onde i ∈ 1, 2 e a e um par
I aplicacoes: f a onde f e a sao pre-termos
I abstracoes: λ(x : T ) : a onde T e um pre-tipo e a e umpre-termo
Andre Luiz Galdino Universidade de Brasılia
![Page 12: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/12.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Pre-termos
Os pretermos da linguagem consistem de:
I constantes: c , TRUE , FALSE
I variaveis: x : VAR T onde T e um pre-tipo
I pares: 〈a1, a2〉 onde cada ai e um pre-termo
I projecoes: pi a onde i ∈ 1, 2 e a e um par
I aplicacoes: f a onde f e a sao pre-termos
I abstracoes: λ(x : T ) : a onde T e um pre-tipo e a e umpre-termo
Andre Luiz Galdino Universidade de Brasılia
![Page 13: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/13.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Pre-termos
Os pretermos da linguagem consistem de:
I constantes: c , TRUE , FALSE
I variaveis: x : VAR T onde T e um pre-tipo
I pares: 〈a1, a2〉 onde cada ai e um pre-termo
I projecoes: pi a onde i ∈ 1, 2 e a e um par
I aplicacoes: f a onde f e a sao pre-termos
I abstracoes: λ(x : T ) : a onde T e um pre-tipo e a e umpre-termo
Andre Luiz Galdino Universidade de Brasılia
![Page 14: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/14.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Pre-termos
Os pretermos da linguagem consistem de:
I constantes: c , TRUE , FALSE
I variaveis: x : VAR T onde T e um pre-tipo
I pares: 〈a1, a2〉 onde cada ai e um pre-termo
I projecoes: pi a onde i ∈ 1, 2 e a e um par
I aplicacoes: f a onde f e a sao pre-termos
I abstracoes: λ(x : T ) : a onde T e um pre-tipo e a e umpre-termo
Andre Luiz Galdino Universidade de Brasılia
![Page 15: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/15.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Pre-termos
Os pretermos da linguagem consistem de:
I constantes: c , TRUE , FALSE
I variaveis: x : VAR T onde T e um pre-tipo
I pares: 〈a1, a2〉 onde cada ai e um pre-termo
I projecoes: pi a onde i ∈ 1, 2 e a e um par
I aplicacoes: f a onde f e a sao pre-termos
I abstracoes: λ(x : T ) : a onde T e um pre-tipo e a e umpre-termo
Andre Luiz Galdino Universidade de Brasılia
![Page 16: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/16.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Exemplo de Contexto, kind(Γ(s)) e type(Γ(s))
A sequencia de declaracoes abaixo e um contexto denotado por Γ.
bool :TYPE ,TRUE :bool ,FALSE :bool , x :VAR [[bool , bool ]→ bool ]
Neste contexto temos:
I kind(Γ(bool)) = TYPE
I kind(Γ(TRUE )) = CONSTANT
I kind(Γ(x)) = VARIABLE
I type(Γ(x)) = [[bool , bool ]→ bool ]
Andre Luiz Galdino Universidade de Brasılia
![Page 17: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/17.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Exemplo de Contexto, kind(Γ(s)) e type(Γ(s))
A sequencia de declaracoes abaixo e um contexto denotado por Γ.
bool :TYPE ,TRUE :bool ,FALSE :bool , x :VAR [[bool , bool ]→ bool ]
Neste contexto temos:
I kind(Γ(bool)) = TYPE
I kind(Γ(TRUE )) = CONSTANT
I kind(Γ(x)) = VARIABLE
I type(Γ(x)) = [[bool , bool ]→ bool ]
Andre Luiz Galdino Universidade de Brasılia
![Page 18: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/18.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Exemplo de Contexto, kind(Γ(s)) e type(Γ(s))
A sequencia de declaracoes abaixo e um contexto denotado por Γ.
bool :TYPE ,TRUE :bool ,FALSE :bool , x :VAR [[bool , bool ]→ bool ]
Neste contexto temos:
I kind(Γ(bool)) = TYPE
I kind(Γ(TRUE )) = CONSTANT
I kind(Γ(x)) = VARIABLE
I type(Γ(x)) = [[bool , bool ]→ bool ]
Andre Luiz Galdino Universidade de Brasılia
![Page 19: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/19.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Exemplo de Contexto, kind(Γ(s)) e type(Γ(s))
A sequencia de declaracoes abaixo e um contexto denotado por Γ.
bool :TYPE ,TRUE :bool ,FALSE :bool , x :VAR [[bool , bool ]→ bool ]
Neste contexto temos:
I kind(Γ(bool)) = TYPE
I kind(Γ(TRUE )) = CONSTANT
I kind(Γ(x)) = VARIABLE
I type(Γ(x)) = [[bool , bool ]→ bool ]
Andre Luiz Galdino Universidade de Brasılia
![Page 20: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/20.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Exemplo de Contexto, kind(Γ(s)) e type(Γ(s))
A sequencia de declaracoes abaixo e um contexto denotado por Γ.
bool :TYPE ,TRUE :bool ,FALSE :bool , x :VAR [[bool , bool ]→ bool ]
Neste contexto temos:
I kind(Γ(bool)) = TYPE
I kind(Γ(TRUE )) = CONSTANT
I kind(Γ(x)) = VARIABLE
I type(Γ(x)) = [[bool , bool ]→ bool ]
Andre Luiz Galdino Universidade de Brasılia
![Page 21: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/21.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Observacoes
I O contexto vazio e representado como
I Seja Γ um contexto e s : D. Entao:
I (Γ, s : D)(s) = DI (Γ, s : D)(r) = Γ(r) para r 6= s.
I Se s nao esta declarado em Γ, entao Γ(s) esta indefinido.
Andre Luiz Galdino Universidade de Brasılia
![Page 22: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/22.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Observacoes
I O contexto vazio e representado como I Seja Γ um contexto e s : D. Entao:
I (Γ, s : D)(s) = DI (Γ, s : D)(r) = Γ(r) para r 6= s.
I Se s nao esta declarado em Γ, entao Γ(s) esta indefinido.
Andre Luiz Galdino Universidade de Brasılia
![Page 23: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/23.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Observacoes
I O contexto vazio e representado como I Seja Γ um contexto e s : D. Entao:
I (Γ, s : D)(s) = D
I (Γ, s : D)(r) = Γ(r) para r 6= s.
I Se s nao esta declarado em Γ, entao Γ(s) esta indefinido.
Andre Luiz Galdino Universidade de Brasılia
![Page 24: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/24.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Observacoes
I O contexto vazio e representado como I Seja Γ um contexto e s : D. Entao:
I (Γ, s : D)(s) = DI (Γ, s : D)(r) = Γ(r) para r 6= s.
I Se s nao esta declarado em Γ, entao Γ(s) esta indefinido.
Andre Luiz Galdino Universidade de Brasılia
![Page 25: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/25.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Observacoes
I O contexto vazio e representado como I Seja Γ um contexto e s : D. Entao:
I (Γ, s : D)(s) = DI (Γ, s : D)(r) = Γ(r) para r 6= s.
I Se s nao esta declarado em Γ, entao Γ(s) esta indefinido.
Andre Luiz Galdino Universidade de Brasılia
![Page 26: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/26.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regra de Tipos: Contexto
τ()() = CONTEXT
τ()(Γ, s : TYPE ) = CONTEXT , se Γ(s) e indefinidoe τ()(Γ) = CONTEXT
τ()(Γ, c : T ) = CONTEXT , se Γ(c) e indefinido,τ(Γ)(T ) = TYPE e τ()(Γ) = CONTEXT
τ()(Γ, x : VAR T ) = CONTEXT , se Γ(x) e indefinido,τ(Γ)(T ) = TYPE e τ()(Γ) = CONTEXT
Andre Luiz Galdino Universidade de Brasılia
![Page 27: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/27.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regra de Tipos: Pre-tipos
τ(Γ)(s) = TYPE se kind(Γ(s)) = TYPE
τ(Γ)([A→ B]) = TYPE se τ(Γ)(A) = τ(Γ)(B) = TYPE
τ(Γ)([A1,A2]) = TYPE se τ(Γ)(Ai ) = TYPE para 1 ≤ i ≤ 2
Andre Luiz Galdino Universidade de Brasılia
![Page 28: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/28.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regra de Tipos: Pre-termos
τ(Γ)(s) = type(Γ(s))se kind(Γ(s)) ∈ CONSTANT ,VARIABLE
τ(Γ)(f a) = B se τ(Γ)(f ) = [A→ B] e τ(Γ)(a) = A
τ(Γ)(λ(x : T ) : a) = [T → τ(Γ, x : VAR T )(a)]se Γ(x) e indefinido e τ(Γ)(T ) = TYPE
τ(Γ)((a1, a2)) = [τ(Γ)(a1), τ(Γ)(a2)]
τ(Γ)(pi a) = Ti ondeτ(Γ)(a) = [T1,T2]
Andre Luiz Galdino Universidade de Brasılia
![Page 29: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/29.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Exemplo: Regra de Tipos
Seja Ω classificado como o contexto bool : TYPE , TRUE : bool ,FALSE : bool .
τ()() = CONTEXT
τ()(Ω) = CONTEXT
τ(Ω)([[bool , bool ]→ bool ]) = TYPE
τ(Ω)((TRUE ,FALSE )) = [bool , bool ]
τ(Ω)(p2 (TRUE ,FALSE )) = bool
τ(Ω)(λ(x : bool) : TRUE ) = [bool → bool ]
Andre Luiz Galdino Universidade de Brasılia
![Page 30: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/30.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Semantica do PVS
Uma designacao γ e uma lista de ligacoes da formas1 ← t1 · · · sn ← tn. A aplicacao de uma designacao γ paraum sımbolo s e tal que γs ← t(s) e t, enquanto queγr ← t(s) e γ(s) quando r 6= s.
A semantica da teoria de tipos simples do PVS e dada aplicandoum tipo T para um conjunto (possivelmente vazio) M(Γ | γ)(T ),e um termo a com tipo designado T para um elemento doconjunto M(Γ | γ)(T ) no universo U.
Andre Luiz Galdino Universidade de Brasılia
![Page 31: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/31.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Semantica do PVS
Uma designacao γ e uma lista de ligacoes da formas1 ← t1 · · · sn ← tn. A aplicacao de uma designacao γ paraum sımbolo s e tal que γs ← t(s) e t, enquanto queγr ← t(s) e γ(s) quando r 6= s.
A semantica da teoria de tipos simples do PVS e dada aplicandoum tipo T para um conjunto (possivelmente vazio) M(Γ | γ)(T ),e um termo a com tipo designado T para um elemento doconjunto M(Γ | γ)(T ) no universo U.
Andre Luiz Galdino Universidade de Brasılia
![Page 32: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/32.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Significado da Funcao
M(Γ | γ)(s) = γ(s) se kind(Γ(s)) esta no conjunto,TYPE ,CONSTANT ,VARIABLE
M(Γ | γ)([A→ B]) = M(Γ | γ)(B)M(Γ | γ)(A)
M(Γ | γ)([T1,T2]) = M(Γ | γ)(T1)×M(Γ | γ)(T2)
M(Γ | γ)(f a) = (M(Γ | γ)(f ))(M(Γ | γ)(a))
M(Γ | γ)(λ(x : T ) : a) = 〈y , z〉 | y ∈M(Γ | γ)(T ),z =M(Γ, x : VAR T | γx ← y)(a)
M(Γ | γ)((a1, a2)) = 〈M(Γ | γ)(a1),M(Γ | γ)(a2)〉
M(Γ | γ)(pi a) = ti , onde M(Γ | γ)(a) = 〈t1, t2〉
Andre Luiz Galdino Universidade de Brasılia
![Page 33: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/33.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Exemplo: Significado da Funcao
Seja ω uma designacao para o contexto Ω do Exemplo 2.4, daforma
bool ← 2TRUE ← 1FALSE ← 0
entao
M(Ω | ω)([bool , bool ]) = 2× 2
M(Ω | ω)((TRUE ,FALSE )) = 〈1, 0〉
M(Ω | ω)(λ(x : bool) : TRUE )) = 〈0, 1〉 , 〈1, 1〉
Andre Luiz Galdino Universidade de Brasılia
![Page 34: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/34.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Satisfacao
Uma designacao de contexto γ e dita satisfazer um contexto Γ (emsımbolos γ |= Γ) se, e somente se,
I γ(bool) = 2,
I γ(TRUE ) = 1,
I γ(FALSE ) = 0,
I γ(s) ∈ U sempre que kind(Γ(s)) = TYPE , e
I γ(s) ∈M(Γ | γ)(type(Γ(s)) sempre quekind(Γ(s)) ∈ CONSTANT ,VARIABLE.
Andre Luiz Galdino Universidade de Brasılia
![Page 35: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/35.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Correcao de Tipos e Termos
ProposicaoSe τ()(Γ) = τ()(Γ′) = CONTEXT e Γ e um prefixo de Γ′, entaopara todo pre-tipo A, τ(Γ)(A) = TYPE implica τ(Γ′)(A) = TYPE ,e para todo pre-termo a, τ(Γ)(a) = A implica τ(Γ′)(a) = A.
Teoremas
I Se τ()(Γ) = CONTEXT e τ(Γ)(a) = A, entaoτ(Γ)(A) = TYPE .
I (Correcao de Tipos)Se τ()(Γ) = CONTEXT , γ satisfaz Γ, eτ(Γ)(A) = TYPE , entaoM(Γ | γ)(A) ∈ U.
I (Correcao de Termos) Se τ()(Γ) = CONTEXT , γ satisfaz Γ, eτ(Γ)(a) esta definido e igual a A, entaoM(Γ | γ)(a) ∈M(Γ | γ)(A).
Andre Luiz Galdino Universidade de Brasılia
![Page 36: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/36.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Correcao de Tipos e Termos
ProposicaoSe τ()(Γ) = τ()(Γ′) = CONTEXT e Γ e um prefixo de Γ′, entaopara todo pre-tipo A, τ(Γ)(A) = TYPE implica τ(Γ′)(A) = TYPE ,e para todo pre-termo a, τ(Γ)(a) = A implica τ(Γ′)(a) = A.
Teoremas
I Se τ()(Γ) = CONTEXT e τ(Γ)(a) = A, entaoτ(Γ)(A) = TYPE .
I (Correcao de Tipos)Se τ()(Γ) = CONTEXT , γ satisfaz Γ, eτ(Γ)(A) = TYPE , entaoM(Γ | γ)(A) ∈ U.
I (Correcao de Termos) Se τ()(Γ) = CONTEXT , γ satisfaz Γ, eτ(Γ)(a) esta definido e igual a A, entaoM(Γ | γ)(a) ∈M(Γ | γ)(A).
Andre Luiz Galdino Universidade de Brasılia
![Page 37: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/37.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Correcao de Tipos e Termos
ProposicaoSe τ()(Γ) = τ()(Γ′) = CONTEXT e Γ e um prefixo de Γ′, entaopara todo pre-tipo A, τ(Γ)(A) = TYPE implica τ(Γ′)(A) = TYPE ,e para todo pre-termo a, τ(Γ)(a) = A implica τ(Γ′)(a) = A.
Teoremas
I Se τ()(Γ) = CONTEXT e τ(Γ)(a) = A, entaoτ(Γ)(A) = TYPE .
I (Correcao de Tipos)Se τ()(Γ) = CONTEXT , γ satisfaz Γ, eτ(Γ)(A) = TYPE , entaoM(Γ | γ)(A) ∈ U.
I (Correcao de Termos) Se τ()(Γ) = CONTEXT , γ satisfaz Γ, eτ(Γ)(a) esta definido e igual a A, entaoM(Γ | γ)(a) ∈M(Γ | γ)(A).
Andre Luiz Galdino Universidade de Brasılia
![Page 38: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/38.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Correcao de Tipos e Termos
ProposicaoSe τ()(Γ) = τ()(Γ′) = CONTEXT e Γ e um prefixo de Γ′, entaopara todo pre-tipo A, τ(Γ)(A) = TYPE implica τ(Γ′)(A) = TYPE ,e para todo pre-termo a, τ(Γ)(a) = A implica τ(Γ′)(a) = A.
Teoremas
I Se τ()(Γ) = CONTEXT e τ(Γ)(a) = A, entaoτ(Γ)(A) = TYPE .
I (Correcao de Tipos)Se τ()(Γ) = CONTEXT , γ satisfaz Γ, eτ(Γ)(A) = TYPE , entaoM(Γ | γ)(A) ∈ U.
I (Correcao de Termos) Se τ()(Γ) = CONTEXT , γ satisfaz Γ, eτ(Γ)(a) esta definido e igual a A, entaoM(Γ | γ)(a) ∈M(Γ | γ)(A).
Andre Luiz Galdino Universidade de Brasılia
![Page 39: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/39.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Correcao de Tipos e Termos
ProposicaoSe τ()(Γ) = τ()(Γ′) = CONTEXT e Γ e um prefixo de Γ′, entaopara todo pre-tipo A, τ(Γ)(A) = TYPE implica τ(Γ′)(A) = TYPE ,e para todo pre-termo a, τ(Γ)(a) = A implica τ(Γ′)(a) = A.
Teoremas
I Se τ()(Γ) = CONTEXT e τ(Γ)(a) = A, entaoτ(Γ)(A) = TYPE .
I (Correcao de Tipos)Se τ()(Γ) = CONTEXT , γ satisfaz Γ, eτ(Γ)(A) = TYPE , entaoM(Γ | γ)(A) ∈ U.
I (Correcao de Termos) Se τ()(Γ) = CONTEXT , γ satisfaz Γ, eτ(Γ)(a) esta definido e igual a A, entaoM(Γ | γ)(a) ∈M(Γ | γ)(A).
Andre Luiz Galdino Universidade de Brasılia
![Page 40: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/40.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Adicionando Subtipos
I O subtipo de elementos de um tipo T satisfazendo opredicado p e escrito como x : T | p(x).
I Por exemplo, se T e o tipo real entao o subtipo dos numerosreais nao nulos e dado como x : real | x 6= 0.
Andre Luiz Galdino Universidade de Brasılia
![Page 41: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/41.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Adicionando Subtipos
I O subtipo de elementos de um tipo T satisfazendo opredicado p e escrito como x : T | p(x).
I Por exemplo, se T e o tipo real entao o subtipo dos numerosreais nao nulos e dado como x : real | x 6= 0.
Andre Luiz Galdino Universidade de Brasılia
![Page 42: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/42.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Adicionando Subtipos
I O subtipo de elementos de um tipo T satisfazendo opredicado p e escrito como x : T | p(x).
I Por exemplo, se T e o tipo real entao o subtipo dos numerosreais nao nulos e dado como x : real | x 6= 0.
Andre Luiz Galdino Universidade de Brasılia
![Page 43: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/43.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Supertipo Maximal e Supertipo Direto
µ(s) = sµ(x : T | a) = µ(T )
µ([A→ B]) = [A→ µ(B)]µ([A1,A2]) = [µ(A1), µ(A2)]
µ0(x : T | a) = µ0(T )µ0(T ) = T , caso contrario
Andre Luiz Galdino Universidade de Brasılia
![Page 44: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/44.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Supertipo Maximal e Supertipo Direto
µ(s) = sµ(x : T | a) = µ(T )
µ([A→ B]) = [A→ µ(B)]µ([A1,A2]) = [µ(A1), µ(A2)]
µ0(x : T | a) = µ0(T )µ0(T ) = T , caso contrario
Andre Luiz Galdino Universidade de Brasılia
![Page 45: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/45.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Supertipo Maximal e Supertipo Direto
µ(s) = sµ(x : T | a) = µ(T )
µ([A→ B]) = [A→ µ(B)]µ([A1,A2]) = [µ(A1), µ(A2)]
µ0(x : T | a) = µ0(T )µ0(T ) = T , caso contrario
Andre Luiz Galdino Universidade de Brasılia
![Page 46: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/46.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Exemplo: Supertipo Maximal e Direto
Dado um contexto contendo as declaracoesint : TYPE0 : int≤: [[int, int]→ bool ]nat : TYPE = i : int | 0 ≤ inatinjection : TYPE = f : [nat → nat] |
∀(i , j : nat) : f (i) = f (j) ⊃ i = j
temos que
µ(natinjection) = µ([nat → nat])= [nat → µ(nat)]= [nat → int]
µ0(natinjection) = [nat → nat]
Andre Luiz Galdino Universidade de Brasılia
![Page 47: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/47.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Exemplo: Supertipo Maximal e Direto
Dado um contexto contendo as declaracoesint : TYPE0 : int≤: [[int, int]→ bool ]nat : TYPE = i : int | 0 ≤ inatinjection : TYPE = f : [nat → nat] |
∀(i , j : nat) : f (i) = f (j) ⊃ i = j
temos que
µ(natinjection) = µ([nat → nat])= [nat → µ(nat)]= [nat → int]
µ0(natinjection) = [nat → nat]
Andre Luiz Galdino Universidade de Brasılia
![Page 48: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/48.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Restricao de Subtipo
Definicao
π(s) = λ(x : s) : TRUE
π(y : T | a) = λ(x : µ(T )) : (π(T )(x) ∧ a[x/y ])
π([A→ B]) = λ(x : [A→ µ(B)]) : (∀(y : A) : π(B)(x(y)))
π([A1,A2]) = λ(x : [µ(A1), µ(A2)]) : (π(A1)(p1 x) ∧ π(A2)(p2 x))
Andre Luiz Galdino Universidade de Brasılia
![Page 49: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/49.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Restricao de Subtipo
Definicao
π(s) = λ(x : s) : TRUE
π(y : T | a) = λ(x : µ(T )) : (π(T )(x) ∧ a[x/y ])
π([A→ B]) = λ(x : [A→ µ(B)]) : (∀(y : A) : π(B)(x(y)))
π([A1,A2]) = λ(x : [µ(A1), µ(A2)]) : (π(A1)(p1 x) ∧ π(A2)(p2 x))
Andre Luiz Galdino Universidade de Brasılia
![Page 50: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/50.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Exemplo: Restricao de Subtipo
π(nat) = λ(j : int) : 0 ≤ j
π([nat → nat])
= λ(g : [nat → int]) : ∀(i : nat) : (λ(j : int) : 0 ≤ j)(g(i))
π(natinjection)
= λ(f : [nat → int]) : π([nat → nat])(f )∧ (∀(i , j : nat) : f (i) = f (j) ⊃ i = j)
= λ(f : [nat → int]) :(λ(g : [nat → int]) : ∀(i : nat) : (λ(j : int) : 0 ≤ j)(g(i)))(f )
∧ (∀(i , j : nat) : f (i) = f (j) ⊃ i = j)
Andre Luiz Galdino Universidade de Brasılia
![Page 51: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/51.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Obrigacoes de Prova para Equivalencia de Tipos(Maximais)
I (s ' s) = TRUE
I ([A→ B] ' [A′ → B ′]) =
((µ(A) ' µ(A′)); (π(A) = π(A′)); (B ' B ′))
I ([A1,A2] ' [B1,B2]) = ((A1 ' B1); (A2 ' B2))
I (A ' B) = FALSE , caso contrario.
Andre Luiz Galdino Universidade de Brasılia
![Page 52: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/52.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Obrigacoes de Prova para Equivalencia de Tipos(Maximais)
I (s ' s) = TRUE
I ([A→ B] ' [A′ → B ′]) =
((µ(A) ' µ(A′)); (π(A) = π(A′)); (B ' B ′))
I ([A1,A2] ' [B1,B2]) = ((A1 ' B1); (A2 ' B2))
I (A ' B) = FALSE , caso contrario.
Andre Luiz Galdino Universidade de Brasılia
![Page 53: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/53.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Obrigacoes de Prova para Equivalencia de Tipos(Maximais)
I (s ' s) = TRUE
I ([A→ B] ' [A′ → B ′]) =
((µ(A) ' µ(A′)); (π(A) = π(A′)); (B ' B ′))
I ([A1,A2] ' [B1,B2]) = ((A1 ' B1); (A2 ' B2))
I (A ' B) = FALSE , caso contrario.
Andre Luiz Galdino Universidade de Brasılia
![Page 54: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/54.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Obrigacoes de Prova para Equivalencia de Tipos(Maximais)
I (s ' s) = TRUE
I ([A→ B] ' [A′ → B ′]) =
((µ(A) ' µ(A′)); (π(A) = π(A′)); (B ' B ′))
I ([A1,A2] ' [B1,B2]) = ((A1 ' B1); (A2 ' B2))
I (A ' B) = FALSE , caso contrario.
Andre Luiz Galdino Universidade de Brasılia
![Page 55: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/55.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Obrigacoes de Prova para Equivalencia de Tipos(Maximais)
I (s ' s) = TRUE
I ([A→ B] ' [A′ → B ′]) =
((µ(A) ' µ(A′)); (π(A) = π(A′)); (B ' B ′))
I ([A1,A2] ' [B1,B2]) = ((A1 ' B1); (A2 ' B2))
I (A ' B) = FALSE , caso contrario.
Andre Luiz Galdino Universidade de Brasılia
![Page 56: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/56.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Exemplo: Tipos Equivalentes
Seja o contexto contendo as declaracoes
int : TYPE
0 : int
≤: [[int, int]→ bool ]
nat : TYPE = i : int | 0 ≤ i
natinjection : TYPE = f : [nat → nat] |∀(i , j : nat) : f (i) = f (j) ⊃ i = j
NAT : TYPE = i : int | i ≤ 0 ⊃ i = 0NATinjection : TYPE = f : [NAT → NAT ] |
∀(i , j : NAT ) : f (i) = f (j) ⊃ i = j
Andre Luiz Galdino Universidade de Brasılia
![Page 57: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/57.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Continuacao do exemplo: Tipos Equivalentes
µ([natinjection→ natinjection]) = [natinjection→ [nat → int]]
µ([NATinjection→ NATinjection]) = [NATinjection→ [NAT → int]]
Entao
µ([natinjection→ natinjection]) ' µ([NATinjection→ NATinjection])
se, e somente se,
[natinjection→ [nat → int]] ' [NATinjection→ [NAT → int]]
= (µ(natinjection) ' µ(NATinjection));
(π(natinjection) = π(NATinjection));
([nat → int]) ' ([NAT → int])
Andre Luiz Galdino Universidade de Brasılia
![Page 58: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/58.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Continuacao do exemplo: Tipos Equivalentes
µ([natinjection→ natinjection]) = [natinjection→ [nat → int]]
µ([NATinjection→ NATinjection]) = [NATinjection→ [NAT → int]]
Entao
µ([natinjection→ natinjection]) ' µ([NATinjection→ NATinjection])
se, e somente se,
[natinjection→ [nat → int]] ' [NATinjection→ [NAT → int]]
= (µ(natinjection) ' µ(NATinjection));
(π(natinjection) = π(NATinjection));
([nat → int]) ' ([NAT → int])
Andre Luiz Galdino Universidade de Brasılia
![Page 59: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/59.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Continuacao do exemplo: Tipos Equivalentes
µ([natinjection→ natinjection]) = [natinjection→ [nat → int]]
µ([NATinjection→ NATinjection]) = [NATinjection→ [NAT → int]]
Entao
µ([natinjection→ natinjection]) ' µ([NATinjection→ NATinjection])
se, e somente se,
[natinjection→ [nat → int]] ' [NATinjection→ [NAT → int]]
= (µ(natinjection) ' µ(NATinjection));
(π(natinjection) = π(NATinjection));
([nat → int]) ' ([NAT → int])
Andre Luiz Galdino Universidade de Brasılia
![Page 60: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/60.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Continuacao do exemplo: Tipos Equivalentes
I (π(natinjection) = π(NATinjection))
se, e somente se,
(λ(f : [nat → int]) : (λ(g : [nat → int]) : ∀(i : nat) : 0 ≤ g(i))(f )
∧ (∀(i , j : nat) : f (i) = f (j) ⊃ i = j)
=
λ(f : [NAT → int]) :
(λ(g : [NAT → int]) : ∀(i : NAT ) : g(i) ≤ 0 ⊃ g(i) = 0)(f ) )
∧ (∀(i , j : NAT ) : f (i) = f (j) ⊃ i = j)
I ([nat → int]) ' ([NAT → int])
= (int ' int);
(λ(i : int) : 0 ≤ i) = (λ(i : int) : i ≤ 0 ⊃ i = 0);
(int ' int)
Andre Luiz Galdino Universidade de Brasılia
![Page 61: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/61.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Continuacao do exemplo: Tipos Equivalentes
I (π(natinjection) = π(NATinjection))
se, e somente se,
(λ(f : [nat → int]) : (λ(g : [nat → int]) : ∀(i : nat) : 0 ≤ g(i))(f )
∧ (∀(i , j : nat) : f (i) = f (j) ⊃ i = j)
=
λ(f : [NAT → int]) :
(λ(g : [NAT → int]) : ∀(i : NAT ) : g(i) ≤ 0 ⊃ g(i) = 0)(f ) )
∧ (∀(i , j : NAT ) : f (i) = f (j) ⊃ i = j)
I ([nat → int]) ' ([NAT → int])
= (int ' int);
(λ(i : int) : 0 ≤ i) = (λ(i : int) : i ≤ 0 ⊃ i = 0);
(int ' int)
Andre Luiz Galdino Universidade de Brasılia
![Page 62: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/62.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Continuacao do exemplo: Tipos Equivalentes
I (π(natinjection) = π(NATinjection))
se, e somente se,
(λ(f : [nat → int]) : (λ(g : [nat → int]) : ∀(i : nat) : 0 ≤ g(i))(f )
∧ (∀(i , j : nat) : f (i) = f (j) ⊃ i = j)
=
λ(f : [NAT → int]) :
(λ(g : [NAT → int]) : ∀(i : NAT ) : g(i) ≤ 0 ⊃ g(i) = 0)(f ) )
∧ (∀(i , j : NAT ) : f (i) = f (j) ⊃ i = j)
I ([nat → int]) ' ([NAT → int])
= (int ' int);
(λ(i : int) : 0 ≤ i) = (λ(i : int) : i ≤ 0 ⊃ i = 0);
(int ' int)
Andre Luiz Galdino Universidade de Brasılia
![Page 63: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/63.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Compatibilidade entre Tipos
DefinicaoDois tipos A e B sao ditos ser compatıveis no contexto Γ (emnotacao, (A ∼ B)Γ ) se `Γ a , para cada a em (µ(A) ' µ(B)).
Andre Luiz Galdino Universidade de Brasılia
![Page 64: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/64.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Exemplo: Verificando Tipo
τ(Γ)(f a) = B, onde µ0(τ(Γ)(f )) = [A→ B],τ(Γ)(a) = A′,(A ∼ A′)Γ,`Γ π(A)(a)
Andre Luiz Galdino Universidade de Brasılia
![Page 65: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/65.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Exemplo: Verificando Tipo
Seja g : f : [nat → nat] | f (0) = 0, e x : int. Entao
µ0(τ(Γ)(g)) = [nat → nat]
τ(Γ)(x) = int, e ainda
int ∼ nat, desde que µ(int) = µ(nat) = number
τ(Γ)(g(x)) = nat, com a obrigacao de prova
π(nat)(x) = (x ≥ 0).
Andre Luiz Galdino Universidade de Brasılia
![Page 66: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/66.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Tipos Dependentes: Motivacao
I Definicao do coeficiente binomial C (n, k) = (nk)
I Primeiro, definimos a operacao fatorial recursivamente:n : VAR natfatorial(n) : RECURSIVE posnat =
(IF n > 0 THEN n ∗ fatorial(n − 1) ELSE 1 ENDIF)MEASURE n
I C (n, (k : upto(n))) : rat =fatorial(n)/(fatorial(k) ∗ fatorial(n − k))
onde upto(n) = s : nat | s <= n
Andre Luiz Galdino Universidade de Brasılia
![Page 67: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/67.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Tipos Dependentes: Motivacao
I Definicao do coeficiente binomial C (n, k) = (nk)
I Primeiro, definimos a operacao fatorial recursivamente:n : VAR natfatorial(n) : RECURSIVE posnat =
(IF n > 0 THEN n ∗ fatorial(n − 1) ELSE 1 ENDIF)MEASURE n
I C (n, (k : upto(n))) : rat =fatorial(n)/(fatorial(k) ∗ fatorial(n − k))
onde upto(n) = s : nat | s <= n
Andre Luiz Galdino Universidade de Brasılia
![Page 68: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/68.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Tipos Dependentes: Motivacao
I Definicao do coeficiente binomial C (n, k) = (nk)
I Primeiro, definimos a operacao fatorial recursivamente:n : VAR natfatorial(n) : RECURSIVE posnat =
(IF n > 0 THEN n ∗ fatorial(n − 1) ELSE 1 ENDIF)MEASURE n
I C (n, (k : upto(n))) : rat =fatorial(n)/(fatorial(k) ∗ fatorial(n − k))
onde upto(n) = s : nat | s <= n
Andre Luiz Galdino Universidade de Brasılia
![Page 69: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/69.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Tipos Dependentes: Motivacao
I Definicao do coeficiente binomial C (n, k) = (nk)
I Primeiro, definimos a operacao fatorial recursivamente:n : VAR natfatorial(n) : RECURSIVE posnat =
(IF n > 0 THEN n ∗ fatorial(n − 1) ELSE 1 ENDIF)MEASURE n
I C (n, (k : upto(n))) : rat =fatorial(n)/(fatorial(k) ∗ fatorial(n − k))
onde upto(n) = s : nat | s <= n
Andre Luiz Galdino Universidade de Brasılia
![Page 70: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/70.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Tipos Dependentes
I Um produto de tipos com dependencia e escrito como[x : A,B]
I Uma funcao tipo com dependencia e escrita como[x : A→ B].
Andre Luiz Galdino Universidade de Brasılia
![Page 71: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/71.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Tipos Dependentes
I Um produto de tipos com dependencia e escrito como[x : A,B]
I Uma funcao tipo com dependencia e escrita como[x : A→ B].
Andre Luiz Galdino Universidade de Brasılia
![Page 72: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/72.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Exemplo: Tipos Dependentes
I [i : nat, j : nat | j ≤ i]
I [i : nat, [j : nat | j ≤ i → bool ]]
I [i : int → j : int | i ≤ j]
I [nat, d : n : nat | n 6= 0 → r : nat | r < d]
Andre Luiz Galdino Universidade de Brasılia
![Page 73: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/73.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Exemplo: Tipos Dependentes
I [i : nat, j : nat | j ≤ i]
I [i : nat, [j : nat | j ≤ i → bool ]]
I [i : int → j : int | i ≤ j]
I [nat, d : n : nat | n 6= 0 → r : nat | r < d]
Andre Luiz Galdino Universidade de Brasılia
![Page 74: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/74.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Exemplo: Tipos Dependentes
I [i : nat, j : nat | j ≤ i]
I [i : nat, [j : nat | j ≤ i → bool ]]
I [i : int → j : int | i ≤ j]
I [nat, d : n : nat | n 6= 0 → r : nat | r < d]
Andre Luiz Galdino Universidade de Brasılia
![Page 75: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/75.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Exemplo: Tipos Dependentes
I [i : nat, j : nat | j ≤ i]
I [i : nat, [j : nat | j ≤ i → bool ]]
I [i : int → j : int | i ≤ j]
I [nat, d : n : nat | n 6= 0 → r : nat | r < d]
Andre Luiz Galdino Universidade de Brasılia
![Page 76: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/76.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Exemplo: Tipos Dependentes
I [i : nat, j : nat | j ≤ i]
I [i : nat, [j : nat | j ≤ i → bool ]]
I [i : int → j : int | i ≤ j]
I [nat, d : n : nat | n 6= 0 → r : nat | r < d]
Andre Luiz Galdino Universidade de Brasılia
![Page 77: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/77.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Teoria de Prova do PVS
A teoria de prova do PVS e apresentada em termos de calculossequente.
Um sequente e da forma:
Σ `Γ Λ
onde Γ e um contexto, Σ e o conjunto de formulas antecedentes eΛ e o conjunto de formulas consequentes.
As regras de inferencia sao apresentadas na forma:
premissa(s)
conclus~aonomeladocondic~ao
Andre Luiz Galdino Universidade de Brasılia
![Page 78: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/78.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Teoria de Prova do PVS
A teoria de prova do PVS e apresentada em termos de calculossequente.
Um sequente e da forma:
Σ `Γ Λ
onde Γ e um contexto, Σ e o conjunto de formulas antecedentes eΛ e o conjunto de formulas consequentes.
As regras de inferencia sao apresentadas na forma:
premissa(s)
conclus~aonomeladocondic~ao
Andre Luiz Galdino Universidade de Brasılia
![Page 79: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/79.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Teoria de Prova do PVS
A teoria de prova do PVS e apresentada em termos de calculossequente.
Um sequente e da forma:
Σ `Γ Λ
onde Γ e um contexto, Σ e o conjunto de formulas antecedentes eΛ e o conjunto de formulas consequentes.
As regras de inferencia sao apresentadas na forma:
premissa(s)
conclus~aonomeladocondic~ao
Andre Luiz Galdino Universidade de Brasılia
![Page 80: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/80.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Teoria de Prova do PVS
A teoria de prova do PVS e apresentada em termos de calculossequente.
Um sequente e da forma:
Σ `Γ Λ
onde Γ e um contexto, Σ e o conjunto de formulas antecedentes eΛ e o conjunto de formulas consequentes.
As regras de inferencia sao apresentadas na forma:
premissa(s)
conclus~aonomeladocondic~ao
Andre Luiz Galdino Universidade de Brasılia
![Page 81: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/81.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Enfraquecimento (W)
Σ1 `Γ Λ1
Σ2 `Γ Λ2(W)
se Σ1 ⊆ Σ2 e Λ1 ⊆ Λ2
I Contracao (C)
Direita
a, a,Σ `Γ Λ
a,Σ `Γ Λ(C `)
Esquerda
Σ `Γ a, a,Λ
Σ `Γ a,Λ(` C)
Andre Luiz Galdino Universidade de Brasılia
![Page 82: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/82.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Enfraquecimento (W)
Σ1 `Γ Λ1
Σ2 `Γ Λ2(W)
se Σ1 ⊆ Σ2 e Λ1 ⊆ Λ2
I Contracao (C)
Direita
a, a,Σ `Γ Λ
a,Σ `Γ Λ(C `)
Esquerda
Σ `Γ a, a,Λ
Σ `Γ a,Λ(` C)
Andre Luiz Galdino Universidade de Brasılia
![Page 83: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/83.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Comuta (X)
Direita
Σ1, a, b,Σ2 `Γ Λ
Σ1, b, a,Σ2 `Γ Λ(X `)
Esquerda
Σ `Γ Λ1, a, b,Λ2
Σ `Γ Λ1, b, a,Λ2(X `)
I Corte (Corte)
(τ(Γ)(a) ∼ bool)Γ Σ, a `Γ Λ Σ `Γ a,Λ
Σ `Γ Λ(Corte)
Andre Luiz Galdino Universidade de Brasılia
![Page 84: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/84.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Comuta (X)
Direita
Σ1, a, b,Σ2 `Γ Λ
Σ1, b, a,Σ2 `Γ Λ(X `)
Esquerda
Σ `Γ Λ1, a, b,Λ2
Σ `Γ Λ1, b, a,Λ2(X `)
I Corte (Corte)
(τ(Γ)(a) ∼ bool)Γ Σ, a `Γ Λ Σ `Γ a,Λ
Σ `Γ Λ(Corte)
Andre Luiz Galdino Universidade de Brasılia
![Page 85: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/85.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Axiomas Proposicionais (Ax)
Σ, a `Γ a,Λ(Ax `)
I TRUE, FALSE
Direita
Σ,FALSE `Γ Λ(FALSE `)
Esquerda
Σ `Γ TRUE ,Λ(` TRUE)
Andre Luiz Galdino Universidade de Brasılia
![Page 86: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/86.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Axiomas Proposicionais (Ax)
Σ, a `Γ a,Λ(Ax `)
I TRUE, FALSE
Direita
Σ,FALSE `Γ Λ(FALSE `)
Esquerda
Σ `Γ TRUE ,Λ(` TRUE)
Andre Luiz Galdino Universidade de Brasılia
![Page 87: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/87.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Contexto
`Γ a(Formula-Contexto) se a e uma formula em Γ.
`Γ s = a(Definicao-Contexto) se s : T = a e uma
definicao de constante em Γ.
Direita
Σ, a `Γ,a Λ
Σ, a `Γ Λ(Contexto `)
Esquerda
Σ `Γ,¬a a,Λ
Σ `Γ a,Λ(` Contexto)
Σ `Γ Λ
Σ `Γ′ Λ(Contexto-W) se Γ e um prefixo de Γ′.
Andre Luiz Galdino Universidade de Brasılia
![Page 88: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/88.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Contexto
`Γ a(Formula-Contexto) se a e uma formula em Γ.
`Γ s = a(Definicao-Contexto) se s : T = a e uma
definicao de constante em Γ.
Direita
Σ, a `Γ,a Λ
Σ, a `Γ Λ(Contexto `)
Esquerda
Σ `Γ,¬a a,Λ
Σ `Γ a,Λ(` Contexto)
Σ `Γ Λ
Σ `Γ′ Λ(Contexto-W) se Γ e um prefixo de Γ′.
Andre Luiz Galdino Universidade de Brasılia
![Page 89: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/89.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Contexto
`Γ a(Formula-Contexto) se a e uma formula em Γ.
`Γ s = a(Definicao-Contexto) se s : T = a e uma
definicao de constante em Γ.
Direita
Σ, a `Γ,a Λ
Σ, a `Γ Λ(Contexto `)
Esquerda
Σ `Γ,¬a a,Λ
Σ `Γ a,Λ(` Contexto)
Σ `Γ Λ
Σ `Γ′ Λ(Contexto-W) se Γ e um prefixo de Γ′.
Andre Luiz Galdino Universidade de Brasılia
![Page 90: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/90.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Contexto
`Γ a(Formula-Contexto) se a e uma formula em Γ.
`Γ s = a(Definicao-Contexto) se s : T = a e uma
definicao de constante em Γ.
Direita
Σ, a `Γ,a Λ
Σ, a `Γ Λ(Contexto `)
Esquerda
Σ `Γ,¬a a,Λ
Σ `Γ a,Λ(` Contexto)
Σ `Γ Λ
Σ `Γ′ Λ(Contexto-W) se Γ e um prefixo de Γ′.
Andre Luiz Galdino Universidade de Brasılia
![Page 91: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/91.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Condicional (IF)
Σ, a, b `Γ,a Λ Σ, c `Γ,¬a a,Λ
Σ, IF (a, b, c) `Γ Λ(IF `)
Σ, a `Γ,a b,Λ Σ `Γ,¬a a, c ,Λ
Σ `Γ IF (a, b, c),Λ(` IF)
Andre Luiz Galdino Universidade de Brasılia
![Page 92: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/92.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Condicional (IF)
Σ, a, b `Γ,a Λ Σ, c `Γ,¬a a,Λ
Σ, IF (a, b, c) `Γ Λ(IF `)
Σ, a `Γ,a b,Λ Σ `Γ,¬a a, c ,Λ
Σ `Γ IF (a, b, c),Λ(` IF)
Andre Luiz Galdino Universidade de Brasılia
![Page 93: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/93.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Igualdade
Reflexiva
Σ `Γ a = a,Λ(Refl)
Substituicao
a = b,Σ[b] `Γ Λ[b]
a = b,Σ[a] `Γ Λ[a](Subs)
Andre Luiz Galdino Universidade de Brasılia
![Page 94: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/94.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Igualdade Booleana
Σ[TRUE ], a `Γ Λ[TRUE ]
Σ[a], a `Γ Λ[a](Subs TRUE)
Σ[FALSE ], a `Γ Λ[FALSE ]
Σ[a], a `Γ Λ[a](Subs FALSE)
Σ,TRUE = FALSE `Γ Λ(TRUE-FALSE)
Andre Luiz Galdino Universidade de Brasılia
![Page 95: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/95.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Igualdade Booleana
Σ[TRUE ], a `Γ Λ[TRUE ]
Σ[a], a `Γ Λ[a](Subs TRUE)
Σ[FALSE ], a `Γ Λ[FALSE ]
Σ[a], a `Γ Λ[a](Subs FALSE)
Σ,TRUE = FALSE `Γ Λ(TRUE-FALSE)
Andre Luiz Galdino Universidade de Brasılia
![Page 96: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/96.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Igualdade Booleana
Σ[TRUE ], a `Γ Λ[TRUE ]
Σ[a], a `Γ Λ[a](Subs TRUE)
Σ[FALSE ], a `Γ Λ[FALSE ]
Σ[a], a `Γ Λ[a](Subs FALSE)
Σ,TRUE = FALSE `Γ Λ(TRUE-FALSE)
Andre Luiz Galdino Universidade de Brasılia
![Page 97: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/97.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Reducao
I β reducao
`Γ (λ(x : T ) : a)(b) = a[b/x ](β)
I π reducao
`Γ pi (a1, a2) = ai(π)
Andre Luiz Galdino Universidade de Brasılia
![Page 98: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/98.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Reducao
I β reducao
`Γ (λ(x : T ) : a)(b) = a[b/x ](β)
I π reducao
`Γ pi (a1, a2) = ai(π)
Andre Luiz Galdino Universidade de Brasılia
![Page 99: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/99.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Extensionalidade
Σ `Γ,s:A (f s) =B[s/x] (g s),Λ
Σ `Γ f =[x :A→B] g ,Λ(FunExt) Γ(s) indefinido
Σ `Γ p1(a) =T1 p1(b),Λ Σ `Γ p2(a) =T2[(p1 a)/x] p2(b),Λ
Σ `Γ a =[x :T1T2] b,Λ(TunExt)
I Restricao de Tipo
τ(Γ)(a) = A π(A)(a),Σ `Γ Λ
Σ `Γ Λ(TipoPred)
Andre Luiz Galdino Universidade de Brasılia
![Page 100: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/100.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Extensionalidade
Σ `Γ,s:A (f s) =B[s/x] (g s),Λ
Σ `Γ f =[x :A→B] g ,Λ(FunExt) Γ(s) indefinido
Σ `Γ p1(a) =T1 p1(b),Λ Σ `Γ p2(a) =T2[(p1 a)/x] p2(b),Λ
Σ `Γ a =[x :T1T2] b,Λ(TunExt)
I Restricao de Tipo
τ(Γ)(a) = A π(A)(a),Σ `Γ Λ
Σ `Γ Λ(TipoPred)
Andre Luiz Galdino Universidade de Brasılia
![Page 101: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/101.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Regras de Provas do PVS
I Extensionalidade
Σ `Γ,s:A (f s) =B[s/x] (g s),Λ
Σ `Γ f =[x :A→B] g ,Λ(FunExt) Γ(s) indefinido
Σ `Γ p1(a) =T1 p1(b),Λ Σ `Γ p2(a) =T2[(p1 a)/x] p2(b),Λ
Σ `Γ a =[x :T1T2] b,Λ(TunExt)
I Restricao de Tipo
τ(Γ)(a) = A π(A)(a),Σ `Γ Λ
Σ `Γ Λ(TipoPred)
Andre Luiz Galdino Universidade de Brasılia
![Page 102: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/102.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Aplicacoes
O PVS ja foi aplicado:
I para demonstrar teoremas classicos em analise matematica;
I para sistemas crıticos, por exemplo, para desenvolvimento desoftware para aeronaves;
I para verificacao de sistemas operacionais, algoritmosdistribuıdos.
Andre Luiz Galdino Universidade de Brasılia
![Page 103: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/103.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Conclusao
A essencia semantica da linguagem e um lambda calculo tipadocom funcoes simples, subtipos, tipos dependentes, teorias eexpressoes condicionais.
Os subtipos e tipos com dependencia sao uma caracterıstica crucialda linguagem.
Andre Luiz Galdino Universidade de Brasılia
![Page 104: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/104.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Referencias
I Sam Owre and Natarajan Shankar. The formal semantics of PVS.Technical Report SRI-CSL-97-2, Computer Science Laboratory, SRIInternational, Menlo Park, CA, August 1997.
I N. Shankar, S. Owre, J. M. Rushby, and D. W. J. Stringer-Calvert. PVSProver Guide. Computer Science Laboratory, SRI International, MenloPark, CA, September 1999.
I S. Owre, N. Shankar, J. M. Rushby, and D. W. J. Stringer-Calvert. PVSSystem Guide. Computer Science Laboratory, SRI International, MenloPark, CA, September 1999.
I V. A. Fernandes, Deteccao e Resolucao de Conflitos de Trafego Aereo,Dissertacao de Mestrado, Departamento de Matematica, Universidade deBrasılia, 2004.
I G. Dowek, C. Munoz, and A. Geser, Tactical Conflict Detection and
Resolution in a 3-D Airspace, Proceedings of the Fourth International Air
Traffic Management RD Seminar ATM 2001. Extended version available
as ICASE Report 2001-7, 2001.
Andre Luiz Galdino Universidade de Brasılia
![Page 105: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/105.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Referencias
I V. A. Fernandes, Deteccao e Resolucao de Conflitos de Trafego Aereo,Dissertacao de Mestrado, Departamento de Matematica, Universidade deBrasılia, 2004.
I G. Dowek, C. Munoz, and A. Geser, Tactical Conflict Detection andResolution in a 3-D Airspace, Proceedings of the Fourth International AirTraffic Management RD Seminar ATM 2001. Extended version availableas ICASE Report 2001-7, 2001.
I J. Maddalon, R. Butler, A. Geser and C. Munoz, Formal Verification of aConflict Resolution and Recovery Algorithm, NASA/TP-2004-213015,2004.
I C. Munoz, R. Butler, V. Carreno, and G. Dowek, Formal verification ofconflict detection algorithms, Software Tools for Technology Transfer,2003. Extended version available as NASA/TM-2001-210864,2001.
I N. Shankar, S. Owre, and J. M. Rushby. PVS Tutorial. Computer Science
Laboratory, SRI International, Menlo Park, CA, February 1993.
Andre Luiz Galdino Universidade de Brasılia
![Page 106: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/106.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Referencias
I S. Owre, J. M. Rushby, and N. Shankar. PVS: A prototype verificationsystem. In Deepak Kapur, editor, 11th International Conference onAutomated Deduction (CADE), volume 607 of Lecture Notes in ArtificialIntelligence, pages 748–752, Saratoga, NY, June 1992. Springer-Verlag.
I S. Owre, N. Shankar, J. M. Rushby, and D. W. J. Stringer-Calvert. PVSLanguage Reference Computer Science Laboratory, SRI International,Menlo Park, CA, September 1999.
I N. Shankar, S. Owre, J. M. Rushby, and D. W. J. Stringer-Calvert. PVSProver Guide. Computer Science Laboratory, SRI International, MenloPark, CA, September 1999.
I S. Owre, N. Shankar, J. M. Rushby, and D. W. J. Stringer-Calvert. PVSSystem Guide. Computer Science Laboratory, SRI International, MenloPark, CA, September 1999.
I S. Owre and N. Shankar. The formal semantics of PVS. Technical Report
SRI-CSL-97-2, Computer Science Laboratory, SRI International, Menlo
Park, CA, August 1997.
Andre Luiz Galdino Universidade de Brasılia
![Page 107: Semântica do PVS: Tipos Dependentes e Aplicaçõesayala/TCgroup/andreSemInf.pdf · Semˆantica do PVS: Tipos Dependentes e Aplica¸c˜oes Andr´e Luiz Galdino1 Universidade de Bras´ılia](https://reader034.vdocuments.us/reader034/viewer/2022050513/5f9de6866b376447704f3d59/html5/thumbnails/107.jpg)
II Seminario Informal (mas Formal) Semantica do PVS: Tipos Dependentes e Aplicacoes
Referencias
I J. Rushby, S. Owre, and N. Shankar. Subtypes for specifications:Predicate subtyping in PVS. IEEE Transactions on Software Engineering,24(9):709–720, September 1998.
I N. Shankar and S. Owre Principles and pragmatics of subtyping in PVS.In Didier Bert, Christine Choppy, and Peter Mosses, editors, RecentTrends in Algebraic Development Techniques, WADT ’99, volume 1827 ofLecture Notes in Computer Science, pages 37–52, Toulouse, France,September 1999. Springer-Verlag.
I J. Crow, S. Owre, J. Rushby, N. Shankar, and Mandayam Srivas. A
tutorial introduction to PVS. Presented at WIFT ’95: Workshop on
Industrial-Strength Formal Specification Techniques, Boca Raton, Florida,
April 1995. Available, with specification files, at
http://www.csl.sri.com/wift-tutorial.html.
Andre Luiz Galdino Universidade de Brasılia