Proof
fun X A a E _ _ H3 =>
H3 (eq_refl (opt X) (none X)) (eq_refl (opt X) (some X a)).

(* Specifications: *)
Lemma SUCC_deloc :
forall (X : Typ1) (A : Rel X) (a : X),
deloc X A (opt X) (SUCC X A a) (some X).
Lemma SUCC_eqv :
forall (X : Typ1) (A : Rel X) (a x : X),
EQV X A x (opt X) (SUCC X A a) (some X x).
Lemma SUCC_intro1 :
forall (X : Typ1) (A : Rel X) (a : X) (Y : Typ1) (B : Rel Y) (b : Y),
ELT Y B b X A a -> ELT Y B b (opt X) (SUCC X A a) (none X).
Lemma SUCC_intro2 :
forall (X : Typ1) (A : Rel X) (a : X),
ELT X A a (opt X) (SUCC X A a) (none X).
Lemma SUCC_elim :
forall (X : Typ1) (A : Rel X) (a : X) (Y : Typ1) (B : Rel Y) (b : Y),
ELT Y B b (opt X) (SUCC X A a) (none X) ->
or (ELT Y B b X A a) (EQV Y B b X A a).
Lemma successor :
forall (X : Typ1) (A : Rel X) (a : X) (Y : Typ1) (B : Rel Y) (b : Y),
iff (ELT Y B b (opt X) (SUCC X A a) (none X))
(or (ELT Y B b X A a) (EQV Y B b X A a)).
Lemma SUCC_compat :
forall (X : Typ1) (A : Rel X) (a : X) (Y : Typ1) (B : Rel Y) (b : Y),
EQV X A a Y B b ->
EQV (opt X) (SUCC X A a) (none X) (opt Y) (SUCC Y B b) (none Y).