FIXME: notation precedence not correct w.r.t. \to \land ...
- added notation for NLE
- added a comment to dependenciesParser.ml :p
     [ ("->", <:unicode<to>>);   ("=>", <:unicode<Rightarrow>>);
       ("<=", <:unicode<leq>>);  (">=", <:unicode<geq>>);
       ("<>", <:unicode<neq>>);  (":=", <:unicode<def>>);
+      ("==", <:unicode<equiv>>);
     ]
 
 let regexp uri_step = [ 'a' - 'z' 'A' - 'Z' '0' - '9' '_' '-' ''' ]+
 
 
 (* $Id$ *)
 
+(* FG
+ * From Cambridge dictionary
+ * Dependency:
+ * a country which is supported and governed by another country
+ * Dependence:
+ * when you need something or someone all the time, especially in order to
+ * continue existing or operating
+ *
+ * Fate vobis ...
+ *)
+
 exception UnableToInclude of string
 
   (* statements meaningful for matitadep *)
 
 
 set "baseuri" "cic:/matita/RELATIONAL/NLE/defs".
 
+include "logic/equality.ma".
+
 include "Nat/defs.ma".
 
 inductive NLE: Nat \to Nat \to Prop \def
    | NLE_zero: \forall q. NLE zero q
-   | NLE_succ: \forall p,q. NLE p q \to NLE (succ p) (succ q).
+   | NLE_succ: \forall p,q. NLE p q \to NLE (succ p) (succ q)
+.
+
+(*CSC: the URI must disappear: there is a bug now *)
+interpretation "natural 'less or equal to'" 'leq x y = 
+   (cic:/matita/RELATIONAL/NLE/defs/NLE.ind#xpointer(1/1) x y).
+
+(*CSC: the URI must disappear: there is a bug now *)
+interpretation "natural 'less than'" 'lt x y = 
+   (cic:/matita/RELATIONAL/NLE/defs/NLE.ind#xpointer(1/1) 
+      (cic:/matita/RELATIONAL/Nat/defs/Nat.ind#xpointer(1/1/2) x) y).
 
 inductive NPlus (p:Nat): Nat \to Nat \to Prop \def
    | nplus_zero_2: NPlus p zero p
    | nplus_succ_2: \forall q, r. NPlus p q r \to NPlus p (succ q) (succ r).
+
+(*CSC: the URI must disappear: there is a bug now *)
+interpretation "natural plus (relational)" 'rel_plus x y z = 
+   (cic:/matita/RELATIONAL/NPlus/defs/NPlus.ind#xpointer(1/1) x y z).
+
+notation "hvbox(a break + b break == c)" 
+  non associative with precedence 95
+for @{ 'rel_plus $a $b $c}.
 
 
 (* primitive generation lemmas proved by elimination and inversion *)
 
-theorem nplus_gen_zero_1: \forall q,r. NPlus zero q r \to q = r.
+theorem nplus_gen_zero_1: \forall q,r. (zero + q == r) \to q = r.
  intros. elim H; clear H q r; intros;
  [ reflexivity
  | clear H1. auto
  ].
 qed.
 
-theorem nplus_gen_succ_1: \forall p,q,r. NPlus (succ p) q r \to 
-                          \exists s. r = (succ s) \land NPlus p q s.
+theorem nplus_gen_succ_1: \forall p,q,r. ((succ p) + q == r) \to 
+                           \exists s. r = (succ s) \land (p + q == s).
  intros. elim H; clear H q r; intros;
  [
  | clear H1.
  ]; apply ex_intro; [| auto || auto ]. (**)
 qed.
 
-theorem nplus_gen_zero_2: \forall p,r. NPlus p zero r \to p = r.
+theorem nplus_gen_zero_2: \forall p,r. (p + zero == r) \to p = r.
  intros. inversion H; clear H; intros;
  [ auto
  | clear H H1.
  ].
 qed.
 
-theorem nplus_gen_succ_2: \forall p,q,r. NPlus p (succ q) r \to 
-                          \exists s. r = (succ s) \land NPlus p q s.
+theorem nplus_gen_succ_2: \forall p,q,r. (p + (succ q) == r) \to 
+                           \exists s. r = (succ s) \land (p + q == s).
  intros. inversion H; clear H; intros;
  [ lapply eq_gen_succ_zero to H as H0. apply H0
  | clear H1 H3 r.
  ].
 qed.
 
-theorem nplus_gen_zero_3: \forall p,q. NPlus p q zero \to p = zero \land q = zero.
+theorem nplus_gen_zero_3: \forall p,q. (p + q == zero) \to 
+                           p = zero \land q = zero.
  intros. inversion H; clear H; intros;
  [ rewrite < H1. clear H1 p.
    auto
  ].
 qed.
 
-theorem nplus_gen_succ_3: \forall p,q,r. NPlus p q (succ r) \to
-                          \exists s. p = succ s \land NPlus s q r \lor
-                                     q = succ s \land NPlus p s r.
+theorem nplus_gen_succ_3: \forall p,q,r. (p + q == (succ r)) \to
+                           \exists s. p = succ s \land (s + q == r) \lor
+                                      q = succ s \land (p + s == r).
  intros. inversion H; clear H; intros;
  [ rewrite < H1. clear H1 p
  | clear H1.
 (*
 (* alternative proofs invoking nplus_gen_2 *)
 
-variant nplus_gen_zero_3_alt: \forall p,q. NPlus p q zero \to p = zero \land q = zero.
+variant nplus_gen_zero_3_alt: \forall p,q. (p + q == zero) \to 
+                               p = zero \land q = zero.
  intros 2. elim q; clear q; intros;
  [ lapply linear nplus_gen_zero_2 to H as H0.
    rewrite > H0. clear H0 p.
  ].
 qed.
 
-variant nplus_gen_succ_3_alt: \forall p,q,r. NPlus p q (succ r) \to
-                              \exists s. p = succ s \land NPlus s q r \lor
-                                         q = succ s \land NPlus p s r.
+variant nplus_gen_succ_3_alt: \forall p,q,r. (p + q == (succ r)) \to
+                               \exists s. p = succ s \land (s + q == r) \lor
+                                          q = succ s \land (p + s == r).
  intros 2. elim q; clear q; intros;
  [ lapply linear nplus_gen_zero_2 to H as H0.
    rewrite > H0. clear H0 p
 *)
 (* other simplification lemmas *)
 
-theorem nplus_gen_eq_2_3: \forall p,q. NPlus p q q \to p = zero.
+theorem nplus_gen_eq_2_3: \forall p,q. (p + q == q) \to p = zero.
  intros 2. elim q; clear q; intros;
  [ lapply linear nplus_gen_zero_2 to H as H0.
    rewrite > H0. clear H0 p
  ]; auto.
 qed.
 
-theorem nplus_gen_eq_1_3: \forall p,q. NPlus p q p \to q = zero.
+theorem nplus_gen_eq_1_3: \forall p,q. (p + q == p) \to q = zero.
  intros 1. elim p; clear p; intros;
  [ lapply linear nplus_gen_zero_1 to H as H0.
    rewrite > H0. clear H0 q
 
 
 include "NPlus/fwd.ma".
 
-theorem nplus_zero_1: \forall q. NPlus zero q q.
+theorem nplus_zero_1: \forall q. zero + q == q.
  intros. elim q; clear q; auto.
 qed.
 
-theorem nplus_succ_1: \forall p,q,r. NPlus p q r \to NPlus (succ p) q (succ r).
+theorem nplus_succ_1: \forall p,q,r. NPlus p q r \to 
+                       (succ p) + q == (succ r).
  intros 2. elim q; clear q;
  [ lapply linear nplus_gen_zero_2 to H as H0.
    rewrite > H0. clear H0 p
  ]; auto.
 qed.
 
-theorem nplus_sym: \forall p,q,r. NPlus p q r \to NPlus q p r.
+theorem nplus_sym: \forall p,q,r. (p + q == r) \to q + p == r.
  intros 2. elim q; clear q;
  [ lapply linear nplus_gen_zero_2 to H as H0.
    rewrite > H0. clear H0 p
 qed.
 
 theorem nplus_shift_succ_sx: \forall p,q,r. 
-                             NPlus p (succ q) r \to NPlus (succ p) q r.
+                              (p + (succ q) == r) \to (succ p) + q == r.
  intros.
  lapply linear nplus_gen_succ_2 to H as H0.
  decompose.
 qed.
 
 theorem nplus_shift_succ_dx: \forall p,q,r. 
-                             NPlus (succ p) q r \to NPlus p (succ q) r.
+                              ((succ p) + q == r) \to p + (succ q) == r.
  intros.
  lapply linear nplus_gen_succ_1 to H as H0.
  decompose.
  auto.
 qed.
 
-theorem nplus_trans_1: \forall p,q1,r1. NPlus p q1 r1 \to 
-                       \forall q2,r2. NPlus r1 q2 r2 \to
-                       \exists q. NPlus q1 q2 q \land NPlus p q r2.
+theorem nplus_trans_1: \forall p,q1,r1. (p + q1 == r1) \to 
+                        \forall q2,r2. (r1 + q2 == r2) \to
+                        \exists q. (q1 + q2 == q) \land p + q == r2.
  intros 2; elim q1; clear q1; intros;
  [ lapply linear nplus_gen_zero_2 to H as H0.
    rewrite > H0. clear H0 p
  ]; apply ex_intro; [| auto || auto ]. (**)
 qed.
 
-theorem nplus_trans_2: \forall p1,q,r1. NPlus p1 q r1 \to 
-                       \forall p2,r2. NPlus p2 r1 r2 \to
-                       \exists p. NPlus p1 p2 p \land NPlus p q r2.
+theorem nplus_trans_2: \forall p1,q,r1. (p1 + q == r1) \to 
+                        \forall p2,r2. (p2 + r1 == r2) \to
+                        \exists p. (p1 + p2 == p) \land p + q == r2.
  intros 2; elim q; clear q; intros;
  [ lapply linear nplus_gen_zero_2 to H as H0.
    rewrite > H0. clear H0 p1
  ]; apply ex_intro; [| auto || auto ]. (**)
 qed.
 
-theorem nplus_conf: \forall p,q,r1. NPlus p q r1 \to 
-                    \forall r2. NPlus p q r2 \to r1 = r2.
+theorem nplus_conf: \forall p,q,r1. (p + q == r1) \to 
+                     \forall r2. (p + q == r2) \to r1 = r2.
  intros 2. elim q; clear q; intros;
  [ lapply linear nplus_gen_zero_2 to H as H0.
    rewrite > H0 in H1. clear H0 p