2.2 Cálculo de Sequentes para LL
2.2.2 O sistema diádico
O sistema diádico, como dito anteriormente, separa os contextos linear e clássico (ver Figura 6). A formalização da LL em Coq, nesta dissertação, está focada no sistema Σ2,
porquanto ele contém um número menor de regras e é equivalente ao sistema Σ1 e à lógica
linear puramente dita.
Figura 6 – Regras de derivação para lógica linear one-sided diádico Sejam A um literal, F e G fórmulas e Γ, Θ e ∆ multiconjuntos de fórmulas:
[init] ` Θ : A, A⊥ ` Θ : Γ, > [>] ` Θ : 1 [1] ` Θ : Γ, F, G [`] ` Θ : Γ, F ` G ` Θ : Γ, F ` Θ : ∆, G [⊗] ` Θ : Γ, F ⊗ G, ∆ ` Θ : Γ, F ` Θ : Γ, G [&] ` Θ : Γ, F & G ` Θ : Γ, Fi [⊕i] ` Θ : Γ, F1⊕ F2 ` Θ : Γ [⊥] ` Θ : Γ, ⊥ ` Θ, F : Γ [?] ` Θ : Γ, ?F ` Θ, F : Γ, F [Ab] ` Θ, F : Γ ` Θ : F [!] ` Θ : !F
Para trabalhar com multiconjuntos, desenvolvemos um módulo multiset baseado na biblioteca CoLoR3(a Coq Library on Rewriting and termination). Usufruímos das definições
e teoremas da estrutura de dados multiset de CoLoR e acrescentamos propriedades, com suas respectivas demostrações, úteis para as provas exibidas neste trabalho (ver Tabela 7).
Tabela 7 – Notação para multiconjuntos em Coq
Notação em Coq Significado { } multiconjunto vazio {{a}} multiconjunto unitário a # Γ multiplicidade de a em Γ
Γ / a remoção de a em Γ Γ =mul= ∆ igualdade entre multiconjuntos
Γ ∪ ∆ união entre multiconjuntos
Dado Γ = {A1, A2, ..., An} um multiconjunto de fórmulas, assim podemos definir
as seguintes operações sobre Γ:
Γ⊥ = {A⊥1, A⊥2, . . . , A⊥n} ?Γ = {?A1, ?A2, . . . , ?An} !Γ = {!A1, !A2, . . . , !An}
Para realizarmos esse raciocínio em Coq, utilizamos a função List.map que, dados um termo f do tipo α → β e uma lista L de termos do tipo α, mapeia todos os elementos de L em elementos do tipo β por meio de f .
Check map. (∗ map : forall A B : Type, (A → B) → list A → list B ∗)
A próxima definição nos permitirá demonstrar metateoremas da LL usando indução. Assim, faremos um pequena modificação nas regras para o sistema Σ2 adicionando a altura
relacionada a cada regra (ver Figura 7).
Definição 2.2.4 (Altura de uma regra). Seja Pn a n-ésima premissa de uma regra em cálculo de sequentes, a altura h de uma instância dessa regra em uma derivação é definida como h =
0 , caso não haja premissas;
max(h(P1), h(P2), . . . , h(Pn)) + 1 , caso contrário.
Exemplo 2.2.5. Para a regra & teremos: π1 .. . ` Θ : Γ, F π2 .. . ` Θ : Γ, G [&] ` Θ : Γ, F & G h = max(π1, π2) + 1.
Se fomos atentos até este ponto, constatamos que o sistema Σ2 não possui as regras
?c e ?w requeridas para manter a qualidade do controle de recursos em LL. Isso ocorre
porque tais regras não são explícitas, mas inferidas pelo sistema. Se os sistemas Σ1 e Σ2
forem equivalentes, teremos como corolário que Σ2 admite weakening e contraction. De
fato, eles são equipolentes.
Por causa da noção interna de permutação em multiconjuntos, e.g. {a, a, b, c} =mul= {b, a, c, a}, não necessitamos de uma regra exchange. De fato, provamos em Coq estes teoremas.
Theorem der_exchange:foralln Θ Γ ∆, ∆ =mul= Γ → n ` Θ : ∆ → n ` Θ : Γ.
Theorem der_exchange_classic:foralln Θ Λ Γ, Θ =mul= Λ → n ` Θ : Γ → n ` Λ: Γ.
Capítulo 2. A Lógica Linear em Coq 37
Figura 7 – Regras de derivação para LL com altura Sejam A um literal, F e G fórmulas e Γ, Θ e ∆ multiconjuntos de fórmulas:
[init] 0 ` Θ : A, A⊥ [>] 0 ` Θ : Γ, > [1] 0 ` Θ : 1 n ` Θ : Γ, F, G [`] n+1 ` Θ : Γ, F ` G n1 ` Θ : Γ, F n2 ` Θ : ∆, G [⊗] max(n1, n2)+1 ` Θ : Γ, F ⊗ G, ∆ n1 ` Θ : Γ, F n2 ` Θ : Γ, G [&] max(n1, n2)+1 ` Θ : Γ, F & G n ` Θ : Γ, Fi [⊕i] n+1 ` Θ : Γ, F1⊕ F2 n ` Θ : Γ [⊥] n+1 ` Θ : Γ, ⊥ n ` Θ, F : Γ [?] n+1 ` Θ : Γ, ?F n ` Θ, F : Γ, F [copy] n+1 ` Θ, F : Γ n ` Θ : F [!] n+1 ` Θ : !F
Lema 2.2.6. Dados Θ1, Θ2, Γ1 e Γ2 multiconjuntos de fórmulas e n natural, se Θ1
=mul= Θ2, Γ1 =mul= Γ2 e o sequente n ` Θ1 : Γ1 é demonstrável, então podemos deduzir
n ` Θ2 : Γ2.
Lemma sig2h_der_compat : forall Θ Λ Γ ∆,
Θ =mul= Λ → Γ =mul= ∆ → n ` Θ : Γ → n ` Λ : ∆.
Proof. (∗ A prova prossegue por indução na hipótese n ` Θ : Γ ∗) Qed.
Note que a igualdade entre multiconjuntos é uma relação de equivalência:
• (Reflexiva) M =mul= M;
• (Simétrica) Se M =mul= N, então N =mul= M;
• (Transitiva) Se M =mul= N e N =mul= P, então M =mul= P.
Notation "X =mul= Y" := (meq X Y) (at level 70).
Lemma meq_ref l :forallM, M =mul= M.
Lemma meq_sym :forallM N, M =mul= N → N =mul= M.
Lemma meq_trans :forallM N P, M =mul= N → N =mul= P → M =mul= P.
Instance meq_Equivalence : Equivalence meq.
Desse modo, podemos tirar proveito da biblioteca de morfismos de Coq4. Com a
prova de sig2h_morphism, poderemos substituir um multiconjunto em sequente por outro que seja equivalente, ou seja, que seja uma permutação (Teorema 3.2.6).
Instance sig2h_morphism : Proper (meq ⇒ meq ⇒ iff) (sig2h n).
(∗ forall (n : nat) (Θ Λ : Multiset), Θ =mul= Λ →
forall Γ ∆ : Multiset, Γ =mul= ∆ →
n ` Θ : Γ ↔ n ` Λ : ∆ ∗)
(∗∗ A prova é justamente a aplicação do Lema 3.2.1 (sig2h_der_compat) ∗)
Em Coq, provamos morfismos semelhantes para todos os sistema de LL descritos neste trabalho. Alguns fatos notáveis quanto à altura é que ela preserva weakening e contraction no contexto clássico.
Lema 2.2.7 (Altura preserva enfraquecimento). Dados Θ, ∆ e Γ multiconjuntos de fórmulas, se o sequente n ` Θ : Γ é demonstrável, então n ` Θ, ∆ : Γ é demonstrável. Lemma height_preserving_weakning_sig2h: foralln Θ ∆ Γ,
n ` Θ : Γ → n ` Θ ∪ ∆ : Γ.
Lema 2.2.8 (Altura preserva contração). Dados Θ e Γ multiconjuntos de fórmulas, o sequente n ` Θ, F, F : Γ é demonstrável se, e somente se, o sequente n ` Θ, F : Γ é demonstrável.
Lemma height_preserving_contraction_sig2h : foralln Θ Γ F, n ` {{F}} ∪ {{F}} ∪ Θ : Γ ↔ n ` {{F}} ∪ Θ : Γ.
Com o teorema de preservação da contração, concluímos que o contexto clássico atua como um conjunto de fórmulas e o linear como um multiconjunto delas. Os lemas 2.2.7 e 2.2.8 foram provados em Coq para todos os sistemas de LL tratados neste trabalho.
Em Coq, provamos que os sistemas com e sem a definição de altura são equivalentes.
Theorem sig2_if f _sig2h :forallΘ Γ, ` Θ : Γ ↔ ∃ m, m ` Θ : Γ.
Proof.
−(∗ sig2 → sig2h ∗)
(∗∗ A prova segue por indução sobre a hipótese ` Θ : Γ ∗)
(∗∗ Todos os casos gerados são triviais, pois as regras são idênticas ∗) −(∗ sig2n → sig2 ∗)
(∗∗ A prova segue por indução sobre a altura m ∗)
(∗∗ Todos os casos gerados são triviais, pois as regras são idênticas ∗)
Qed.
No sentido comum, dizemos que uma conclusão é evidente toda vez que as premissas são. No entanto, algumas regras possuem um comportamento especial, chamamo-las de regras invertíveis. Dizemos que uma regra é invertível quando as premissas são deriváveis
Capítulo 2. A Lógica Linear em Coq 39
sempre que a conclusão é derivável. Tais regras podem ser aplicadas com segurança sempre que possível sem perder provabilidade.
Definição 2.2.9. Dizemos que uma regra é invertível se as premissas podem ser provadas sse a conclusão pode ser provada.
P1, P2, . . .
[regra invertível] C
C [regra invertível] P1, P2, . . .
Teorema 2.2.10. [Invertibilidade] As regras `, ⊥, ? e & são invertíveis em Σ2h.
Theorem invertibility_par_sig2h :foralln Θ Γ ∆ F G,
Γ =mul= {{F ` G}} ∪ ∆ → n ` Θ : Γ → ∃ m, m ` Θ : {{F}} ∪ {{G}} ∪ ∆.
Proof.(∗∗ A prova segue por indução na altura da derivação "n" ∗) Qed.
Theorem invertibility_bot_sig2h :foralln Θ Γ ∆, Γ =mul= {{⊥}} ∪ ∆ → n ` Θ : Γ → ∃ m, m ` Θ : ∆.
Proof.(∗∗ A prova segue por indução na altura da derivação "n" ∗) Qed.
Theorem invertibility_quest_sig2h : foralln Θ Γ ∆ F,
Γ =mul= {{? F}} ∪ ∆ → n ` Θ : Γ → ∃ m, m ` {{F}} ∪ Θ : ∆.
Proof.(∗∗ A prova segue por indução na altura da derivação "n" ∗) Qed.
Theorem invertibility_with_sig2h :foralln Θ Γ ∆ F G, Γ =mul= {{F & G}} ∪ ∆ →
n ` Θ : Γ → ∃ m1 m2, m1 ` Θ : {{F}} ∪ ∆ ∧ m2 ` Θ : {{G}} ∪ ∆.
Proof.(∗∗ A prova segue por indução na altura da derivação "n" ∗) Qed.
O teorema seguinte permite simplificar o término de uma prova em cálculo de sequentes. A regra init (axioma inicial) só permite concluir a prova se contamos somente com um átomo e sua versão negada no contexto linear. Porém, para qualquer fórmula e sua versão negada nas mesmas condições também concluiríamos a prova.
Teorema 2.2.11. [Generalização do axioma inicial] Seja F uma fórmula, então o sequente ` Θ : F, F⊥ é demonstrável em Σ2h.
Theorem generalize_init_sig2h : forallF Γ,
Γ =mul= {{F }} ∪ {{F⊥}} → ∃ m, m ` Θ : Γ. Proof.
(∗∗ A prova segue por indução sobre a fórmula F ∗)
(∗∗ Demandamos o uso do lema 3.2.7 para concluir a prova ∗) Qed.
As regras admissíveis de uma lógica são as regras sob as quais o conjunto de teoremas da lógica é fechado (IEMHOFF; METCALFE, 2009). Ou seja, o conjunto de
teoremas do sistema não se modifica quando uma regra admissível é incorporada. Se um sequente é derivável usando essa regra, então há uma derivação desse sequente sem ela.
As regras copy, ? e ! são regras de um único passo. Por exemplo, em copy copiamos uma única expressão em LL do contexto clássico para o linear. Portanto, se desejarmos copiar todo o contexto clássico, ou um subconjunto dele, para o linear teríamos que fazer um a um. Assim sendo, podemos generalizar tais regras.
Teorema 2.2.12. [Generalização da regra copy] Sejam Θ, Λ e Γ multiconjuntos de fórmulas, então o sistema Σ2 admite a seguinte regra:
` Θ, Λ : Γ, Λ
[copyG]
` Θ, Λ : Γ
Theorem generalize_copy_sig2h: forallΘ Λ Γ n,
n ` Θ ∪ Λ : Γ ∪ Λ → ∃ m, m ` Θ ∪ Λ : Γ. Proof.
(∗∗ A prova segue por indução sobre o multiconjunto de fórmulas Λ ∗)
−(∗ caso base ∗) (∗∗ Trivial ∗)
−(∗ caso indutivo ∗)
(∗∗ Demandamos da hipótese de indução, das regra ? e copy e do uso do teorema 3.2.9, com relação a "?", para conclusão ∗)
Qed.
Teorema 2.2.13. [Generalização da regra quest] Sejam Θ, Γ e ∆ multiconjuntos de fórmulas, então o sistema Σ2 admite a seguinte regra:
` Θ, ∆ : Γ [?G]
` Θ : Γ, ?∆
Theorem generalize_quest_sig2h : forallΘ Γ ∆ n,
n ` ∆ ∪ Θ ; Γ → ∃ m, m ` Θ ; Γ ∪ (map ? ∆). Proof.
(∗∗ A prova segue por indução sobre o multiconjunto de fórmulas Λ ∗)
−(∗ caso base ∗) (∗∗ Trivial ∗)
−(∗ caso indutivo ∗)
(∗∗ Demandamos da hipótese de indução e da regra ? para conclusão ∗) Qed.
Teorema 2.2.14. [Generalização da regra bang] Sejam Θ e ∆ multiconjuntos de fórmulas, então o sistema Σ2 admite a seguinte regra:
Capítulo 2. A Lógica Linear em Coq 41
` Θ : F, ?∆ [!G]
` Θ : !F, ?∆
Theorem generalize_bang_sig2h : forall Θ ∆ F n,
n ` Θ : {{F}} ∪ (? ∆) → ∃ m, m ` Θ : {{! F}} ∪ (map ? ∆). Proof.
(∗∗ A prova segue por indução sobre o multiconjunto de fórmulas ∆ ∗)
−(∗ caso base ∗) (∗∗ Trivial ∗)
−(∗ caso indutivo ∗)
(∗∗ Demandamos da hipótese de indução, ds regra ? e do uso do teorema 3.2.9, com relação a "?", para conclusão ∗)
Qed.
Observe a seguinte regra,
π1 .. . ` Θ : Γ, F π2 .. . ` Θ : ∆, F⊥ [cut] ` Θ : Γ, ∆
chamamo-la de regra do corte e, neste trabalho, denominamos a soma π1+ π2 de altura
do corte e F de fórmula do corte. Muitas derivações e provas de teoremas podem ser simplificadas com o uso dessa regra.
Exemplo 2.2.15. Considere a invertibilidade da regra ⊥. π .. . ` Θ : ∆, ⊥ [⊥-invert] ` Θ : ∆
Se temos a prova do sequente ` Θ : ∆, ⊥, então conseguimos concluir ` Θ : ∆. A prova pode seguir apenas com a aplicação da regra do corte com F = 1 e Γ = {}.
[1] ` Θ : 1 π .. . ` Θ : ∆, 1⊥ (1⊥= ⊥) [cut] ` Θ : ∆
Semelhantemente, a verificação das outras invertibilidades prossegue facilmente em vez de indução na altura da derivação. Assim, podemos incorporar a regra do corte em Σ2h para obtermos um sistema de regras mais poderoso denominado Σ2hc≡ Σ2h+ cut, no
qual um sequente, de altura n com contextos clássico Θ e linear Γ e com a aplicação de c vezes a regra do corte, detém a notação n `c Θ : Γ.
Theorem invertibility_bot_sig2hc :foralln Θ Γ ∆,
Γ =mul= {{⊥}} ∪ ∆ → n `c Θ : Γ → ∃ m, m `c Θ : ∆.
Proof.
(∗∗ Aplicamos a regra do corte com F = 1 e ∆ = ∆ ∗) −(∗ caso 1 ∗)
(∗∗ Aplicamos a regra 1 ∗) −(∗ caso ⊥ ∗)
(∗∗ Usamos a hipótese n `c Θ : Γ ∗)
Qed.
Theorem invertibility_par_sig2hc :foralln F G Θ Γ ∆,
Γ =mul= {{F ` G}} ∪ ∆ → n `c Θ : Γ → ∃ m, m `c Θ : {{F}} ∪ {{G}} ∪ ∆.
Proof.
(∗∗ Aplicamos a regra do corte com F = F` G e ∆ = {{F}} ∪{{G}} ∗) −(∗ caso F ` G ∗)
(∗∗ Usamos a hipótese n `c Θ : Γ ∗) −(∗ caso F⊥ ⊗ G⊥ ∗)
(∗∗ Usamos a regra ⊗ e o teorema 3.2.10 adaptado para sig2hc ∗)
Qed.
Theorem invertibility_quest_sig2hc : foralln Θ Γ ∆ F,
Γ =mul= {{? F}} ∪ ∆ → n `c Θ : Γ → ∃ m, m `c {{F}} ∪ Θ : ∆.
Proof.
(∗∗ Aplicamos a regra do corte com F = ! F⊥ e ∆ = ∆ ∗) −(∗ caso ! F⊥ ∗)
(∗∗ Aplicamos a regra !, em seguida a regra copy e o teorema 3.2.10 adaptado para sig2hc ∗) −(∗ caso ? F ∗)
(∗∗ Usamos o lema 3.2.7 adaptado para sig2hc e a hipótese n `c Θ : Γ ∗)
Qed.
Theorem invertibility_with_sig2hc : foralln Θ Γ ∆ F G, Γ =mul= {{F & G}} ∪ ∆ →
n `c Θ : Γ → ∃ m1 m2, m1 `c Θ : {{F}} ∪ ∆ ∧ m2 `c Θ : {{G}} ∪ ∆.
Proof.
−(∗ caso m1 `c Θ : {{F}} ∗)
(∗∗ Aplicamos a regra do corte com F = F with G e ∆ = {{F}} ∗) +(∗ caso F with G ∗)
(∗∗ Usamos a hipótese n `c Θ : Γ ∗) +(∗ caso F⊥ ⊕ G⊥ ∗)
Capítulo 2. A Lógica Linear em Coq 43
(∗∗ Usamos a regra ⊕1 e o teorema 3.2.10 adaptado para sig2hc ∗) −(∗ caso m2 `c Θ : {{G}} ∗)
(∗∗ Aplicamos a regra do corte com F = F with G e ∆ = {{G}} ∗) +(∗ caso F with G ∗)
(∗∗ Usamos a hipótese n `c Θ : Γ ∗) +(∗ caso F⊥ ⊕ G⊥ ∗)
(∗∗ Usamos a regra ⊕2 e o teorema 3.2.10 adaptado para sig2hc ∗)
Qed.
A regra do corte introduz uma nova e arbitrária proposição F , que não necessaria- mente está relacionado com as fórmulas da conclusão. Portanto, a regra do corte é muito poderosa, mas, do ponto de vista de proof search, implica que devemos encontrar F tal que a prova termina. Claramente, isso incorpora uma grande quantidade de busca de prova não-determinística. Se para qualquer árvore finita de derivação de um sequente que usufrui da regra o corte podemos obter outra árvore, também finita, sem instâncias dessa regra, então podemos contornar tal problema, em outras palavras, podemos eliminar todos os cortes.