.
.
.
}.
Proof.
.
Proof.
.
Proof.
}.
Proof.
.
Proof.
.
Proof.
.
Proof.
.
Proof.
.
Proof.
.
Proof.
.
Proof.
.
Proof.
unfold disjoint,
empty;
intros.
destruct (
zlt (
fst i) (
snd i));
auto.
destruct (
zlt (
fst j) (
snd j));
auto.
right;
right.
destruct (
zlt (
fst i) (
fst j)).
Case 1: i starts to the left of j. *)
destruct (
zle (
snd i) (
fst j)).
Case 1.1: i ends to the left of j, OK *)
auto.
Case 1.2: i ends to the right of j's start, not disjoint. *)
elim (
H (
fst j)).
red;
omega.
red;
omega.
Case 2: j starts to the left of i *)
destruct (
zle (
snd j) (
fst i)).
Case 2.1: j ends to the left of i, OK *)
auto.
Case 2.2: j ends to the right of i's start, not disjoint. *)
elim (
H (
fst i)).
red;
omega.
red;
omega.
Qed.
.
Proof.
}.
Proof.
).
Proof.
.
Proof.
.
Proof.
.
Proof.
).
Proof.
.
Proof.
.
}.
.
Next Obligation.
Next Obligation.
Next Obligation.
Next Obligation.
Next Obligation.
.
.
.
.
Proof.
).
Proof.
).
Proof.
.