proposition: Lemma subst_bounded {ff : falsity_flag} k phi sigma : bounded k phi -> phi[iter up k sigma] = phi.
proof: Proof. induction 1 in sigma |-*; cbn. - f_equal. rewrite <-(Vector.map_id _ _ v) at 2. apply Vector.map_ext_in. intros t Ht. apply subst_bounded_term. auto. - now rewrite IHbounded1, IHbounded2. - f_equal. change (up _) with (iter up (S n) sigma). apply IHbounded. - reflexivity. Qed.
imports: Undecidability.Synthetic(Definitions DecidabilityFacts EnumerabilityFacts ListEnumerabilityFacts ReducibilityFacts) Undecidability(Shared.ListAutomation Shared.Dec) Coq(Eqdep_dec PeanoNat) Coq.Vectors.Vector Undecidability.Shared.Libs.PSL.Vectors(Vectors) EqdepFacts