proposition: Lemma well_founded_string_length : well_founded (fun y r : string => lt (String.length y) (String.length r)%nat).
proof: Proof. unfold well_founded; intro; induction a; econstructor. - destruct y; simpl; omega. - intros; destruct y; simpl; intros. + econstructor; destruct y; simpl; omega. + econstructor; intros. eapply IHa; simpl in *; omega. Qed.
imports: Fiat.Common.Coq__8_4__8_5__Compat Coq.ZArith.ZArith Coq.Arith.PeanoNat Coq.Strings.Ascii Coq.Strings.String Fiat.Common.List.Operations Fiat.Common.StringOperations