proposition: Lemma algebraic_swap_this : forall M (pos: Pos M) (MP: PlaceHolder pos) (P := proj1_sig2 MP), pos = PThis M -> algebraic P -> algebraic (swap MP).
proof: Proof. intros. destruct pos; try_solve. replace (swap MP) with P; trivial. apply term_eq. rewrite swap_env_eq; destruct MP; try_solve. rewrite swap_term_is; try_solve. Qed.
imports: CoLoR(RelExtras ListExtras TermsEta LogicUtil) Coq(Morphisms)