coq로 타우 톨 로지 증명


12

현재 나는 Coq를 배워야하고 or: 을 처리하는 방법을 모른다

예를 들어, 간단하게 증명하는 방법을 모르겠습니다.

Theorem T0: x \/ ~x.

누군가 나를 도울 수 있다면 정말 감사하겠습니다.

참고로이 치트 시트를 사용합니다 .

또한 내가 생각하는 증거의 예 : 이중 부정의 경우 :

Require Import Classical_Prop.

Parameters x: Prop.

Theorem T7: (~~x) -> x. 
intro H. 
apply NNPP. 
exact H. 
Qed.

NNPP의 타입은 forall p:Prop, ~ ~ p -> p.증명하기 위해 그것을 사용하는 것을 속이는 것 T7입니다. 수입 Classical_Prop하면Axiom classic : forall P:Prop, P \/ ~ P.
Anton Trunov

따라서 apply classic.의 목표를 해결합니다 T0.
Anton Trunov

답변:


14

직관적 인 논리를 기반으로하기 때문에 "vanilla"Coq에서는이를 증명할 수 없습니다 .

증명 이론적 관점에서, 직관 논리는 제외 된 중간 및 이중 부정 제거 의 법칙이 유효한 논리 규칙이 아닌 고전 논리의 한계입니다 .

이와 같은 상황을 처리 할 수있는 몇 가지 방법이 있습니다.

  • 제외 된 중간의 법칙을 공리로 소개하십시오.

    Axiom excluded_middle : forall P:Prop, P \/ ~ P.
    

    이 시점 이후에는 더 이상 아무것도 증명할 필요가 없습니다.

  • 배제 된 중간의 법칙과 동등한 공리를 도입하고 그들의 동등성을 입증하십시오. 다음은 몇 가지 예입니다.

    • 이중 부정 제거 는 그러한 공리 중 하나입니다.

      Axiom dne : forall P:Prop, ~~P -> P.
      
    • 피어스의 법칙 은 또 다른 예입니다.

      Axiom peirce : forall P Q:Prop, ((P -> Q) -> P) -> P.
      
    • 또는 De Morgan의 법률 중 하나를 사용하십시오 .

      Axiom de_morgan_and : forall P Q:Prop, ~(~P /\ ~Q) -> P \/ Q.
      

지금까지 감사합니다. 나는 당신이 쓴 모든 것에 익숙하지 않지만 그래도 확인할 것입니다. 나는 coqIde를 사용하고 실제로 이중 부정에 대한 증거를 얻었고 나중에 더 명확하게하기 위해 문제 설명에 추가했습니다. 위에서 언급 한 문제와 비슷한 방법이있을 것으로 기대했습니다. 아마도 하나의 예를 포함했을 것입니다.
Imago

1
@AntonTrunov 당신은 당신의 괄호를 추가해야합니다 Axiom peirce: 그것은 Peirce의 법칙이 아니며 실제로 trivial증명됩니다.
gallais

@gallais 그것을 발견해 주셔서 감사합니다! 결정된.
Anton Trunov

6

다른 사람들이 알려 주었 듯이 고전적인 논리를 가정하지 않으면 타우 톨 로지가 타우 톨 로지가 아닙니다. 그러나 결정 가능한 진리 값에 대한 타투로지를 수행하고 있기 때문에 bool대신 사용할 수 있습니다 Prop. 그런 다음 당신의 타우 톨 로지에는 다음이 포함됩니다.

Require Import Bool.

Lemma how_about_bool: forall (p : bool), Is_true (p || negb p).
Proof.
  now intros [|].
Qed.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.