proposition: Fact df_pred_ren f ν ρ : ⟦f⦃ρ⦄⟧ ν <-> ⟦f⟧ (fun x => ν (ρ x)).
proof: Proof. revert ν ρ; induction f as [ | | [] | [] f Hf g Hg | f Hf ]; intros ν ρ; simpl; try tauto. 1-2: rewrite Hf, Hg; tauto. split; intros (n & Hn); exists n; revert Hn; rewrite Hf; apply df_pred_ext; intros []; simpl; auto. Qed.
imports: Arith Nat ZArith Lia Undecidability.Shared.Libs.DLW.Utils(utils_tac gcd sums bounded_quantification)