Section IndexBound.
Context {A : Set}.
Class IndexBound (a : A) (Bound : list A) :=
{ ibound :> nat;
boundi : nth_error Bound ibound = Some a}.
Global Arguments ibound [a Bound] _ .
Global Arguments boundi [a Bound] _.
Record BoundedIndex (Bound : list A) := { bindex :> A; indexb :> IndexBound bindex Bound }.
End IndexBound.
Context {A : Type} {C : Set}.
Variable (projAC : A -> C).

Lemma None_neq_Some
: forall (AnyT AnyT' : Type) (a : AnyT),
None = Some a -> AnyT'.