proposition: Lemma size_ind {X : Type} (f : X -> nat) (P : X -> Prop) : (forall x, (forall y, f y < f x -> P y) -> P x) -> forall x, P x.
proof: Proof. intros H x. apply H. induction (f x). - intros y. lia. - intros y. intros [] % Nat.lt_eq_cases. + apply IHn; lia. + apply H. injection H0. now intros ->. Qed.
imports: Undecidability.Synthetic(Definitions DecidabilityFacts EnumerabilityFacts ListEnumerabilityFacts ReducibilityFacts) Undecidability(Shared.ListAutomation Shared.Dec) Coq(Eqdep_dec PeanoNat Nat) Coq.Vectors.Vector Undecidability.Shared.Libs.PSL.Vectors(Vectors) EqdepFacts