proposition: Lemma lt_inv_strong : forall a n b a' n' b', lt (cons a n b) (cons a' n' b') -> lt_cases a b n a' b' n'.
proof: Proof. unfold lt. intros; rewrite compare_cons in H. destruct (compare a a') eqn:Ha. - apply compare_eq_iff in Ha as ->. destruct (n ?= n') eqn:?. + destruct (compare b b') eqn:?. 1,3: easy. constructor 3. * easy. * now apply Nat.compare_eq_iff. * now apply compare_lt_impl. + constructor 2. * easy. * now apply Nat.compare_lt_iff. + constructor 2. * easy. * now apply Nat.compare_lt_iff. - constructor 1. now apply compare_lt_impl. - easy. Defined.
imports: Coq(Arith Max Bool Lia Compare_dec Relations Ensembles Wellfounded Bool RelationClasses Operators_Properties ArithRing Logic.Eqdep_dec) hydras(More_Arith Restriction DecPreOrder) hydras(OrdNotations)