坚持证明posets中null元素的唯一性

时间:2017-12-28 15:47:16

标签: coq

我试图通过在Posets上实施事实来学习COQ。在证明我的第一个定理时,我被困在这里。

Class Poset {A: Type} ( leq : A -> A -> Prop ) : Prop := {
    reflexivity: forall x y : A, x = y -> (leq x y);
    antisymmetry: forall x y : A, ((leq x y) /\ (leq y x)) -> x = y;
    transitivity: forall x y z :A, ((leq x y) /\ (leq y z) -> (leq x z))
}.

Module Poset. 
    Parameter A : Type.
    Parameter leq : A -> A -> Prop.
    Parameter poset : @Poset A leq.
    Definition null_element (n : A) := 
        forall a : A, leq n a.
    Theorem uniqueness_of_null_element (n1 : A) (n2 : A) : null_element(n1) /\ null_element(n2) -> n1 = n2.
    Proof.
      unfold null_element.
    Qed.

End Poset.

我不确定如何继续这样做。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

我想我明白了。 这就是我所做的。

Proof.
  unfold null_element.
  intros [H1 H2].
  specialize H1 with n2.
  specialize H2 with n1.
  apply antisymmetry.
  split.
  - apply H1.
  - apply H2.
Qed.