(* elimination rules for equivalence *)
Parameter detachR     : forall (p q:Prop), (p ≡≡ q) -> q -> p.
(* substitution rules for equivalence -> use rewrite *)

(* Specifications: *)
Lemma T1 : forall (q r:Prop),(((q ≡≡ r) ≡≡ (r ≡≡ q)) ≡≡ (r ≡≡ r)).
Lemma T2 : forall (q r:Prop),(((r ≡≡ (q ≡≡ r)) ≡≡ ((r ≡≡ q) ≡≡ r)) ≡≡ ((q ≡≡ r) ≡≡ (r ≡≡ q))).
Lemma T3 : forall (q r:Prop), ((r ≡≡ (q ≡≡ r)) ≡≡ ((r ≡≡ q) ≡≡ r)).
Lemma T4 : forall p q:Prop, ((p ≡≡ q) ≡≡ (q ≡≡ p)). (* symmetry in Proto *)
Lemma ProtoReflex : forall r, r ≡≡ r. (* reflexivity in Proto and meta *)
Lemma ProtoSymm : symmetric _ eqP. (* symmetry in meta *)
Lemma ProtoTrans : transitive _ eqP. (* transitivity in meta *)
(* introduction of equivalence  *)
Lemma intro_eqP : forall (P Q:Prop), P -> Q -> (P ≡≡ Q).
Add Parametric Relation  : Prop (eqP)
reflexivity proved by (ProtoReflex)
symmetry proved by (ProtoSymm)
transitivity proved by (ProtoTrans)
as eq_Prop.