fact: Fixpoint compare (a b : string) := match a, b with | EmptyString, EmptyString => Eq | EmptyString, _ => Lt | String _ _, EmptyString => Gt | String a_head a_tail, String b_head b_tail => match Ascii_as_OT.compare a_head b_head with | Lt => Lt | Gt => Gt | Eq => compare a_tail b_tail end end.
imports: Orders BoolOrder PeanoNat POrderedType BinNat BinInt RelationPairs EqualitiesFacts Ascii String