]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/matita/library/logic/equality.ma
Not is now inductive.
[helm.git] / helm / software / matita / library / logic / equality.ma
index 73728dc9221736060f54a5c2fd764fa7e4612225..f4f12ec6c103a8290765517c95b151985e04cbab 100644 (file)
@@ -1,5 +1,5 @@
 (**************************************************************************)
-(*       ___                                                             *)
+(*       ___                                                               *)
 (*      ||M||                                                             *)
 (*      ||A||       A project by Andrea Asperti                           *)
 (*      ||T||                                                             *)
@@ -17,13 +17,9 @@ include "higher_order_defs/relations.ma".
 inductive eq (A:Type) (x:A) : A \to Prop \def
     refl_eq : eq A x x.
 
-(*CSC: the URI must disappear: there is a bug now *)
-interpretation "leibnitz's equality"
-   'eq t x y = (cic:/matita/logic/equality/eq.ind#xpointer(1/1) t x y).
-(*CSC: the URI must disappear: there is a bug now *)
-interpretation "leibnitz's non-equality"
-  'neq t x y = (cic:/matita/logic/connectives/Not.con
-    (cic:/matita/logic/equality/eq.ind#xpointer(1/1) t x y)).
+interpretation "leibnitz's equality" 'eq t x y = (eq t x y).
+
+interpretation "leibnitz's non-equality" 'neq t x y = (Not (eq t x y)).
 
 theorem eq_rect':
  \forall A. \forall x:A. \forall P: \forall y:A. x=y \to Type.
@@ -52,6 +48,13 @@ qed.
 variant trans_eq : \forall A:Type.\forall x,y,z:A. x=y  \to y=z \to x=z
 \def transitive_eq.
 
+theorem symmetric_not_eq: \forall A:Type. symmetric A (λx,y.x ≠ y).
+unfold symmetric.simplify.intros.unfold.intro.apply H.apply sym_eq.assumption.
+qed.
+
+variant sym_neq: ∀A:Type.∀x,y.x ≠ y →y ≠ x
+≝ symmetric_not_eq.
+
 theorem eq_elim_r:
  \forall A:Type.\forall x:A. \forall P: A \to Prop.
    P x \to \forall y:A. y=x \to P y.