From 71a6a3d5b6f4b428b463bc4a0766c91d8c1d5768 Mon Sep 17 00:00:00 2001 From: Hannes Schulze Date: Wed, 3 Dec 2025 20:34:41 +0100 Subject: refactor equivariant props to use type classes --- Nominal/LambdaCalculus/Preterms.lean | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'Nominal/LambdaCalculus/Preterms.lean') diff --git a/Nominal/LambdaCalculus/Preterms.lean b/Nominal/LambdaCalculus/Preterms.lean index c133343..81622af 100644 --- a/Nominal/LambdaCalculus/Preterms.lean +++ b/Nominal/LambdaCalculus/Preterms.lean @@ -141,7 +141,7 @@ private def equiv : EquivariantEquiv Var Preterm (Var ⊕ (Var × Preterm) ⊕ ( | inl _ => simp | inr x' => cases x' <;> all_goals simp toFun_equivariant := by - intro t π + constructor; intro t π cases t <;> all_goals simp } @@ -181,13 +181,13 @@ lemma fv_finite (t : Preterm) : t.fv.Finite := by apply Set.Finite.subset (vars_finite t) (fv_subset_vars t) /-- The vars map is equivariant. -/ -lemma vars_equivariant : Function.Equivariant Var vars := by - intro t π +instance instVarsEquivariant : Function.Equivariant Var vars := by + constructor; intro t π fun_induction vars <;> all_goals simp [vars, *, Set.smul_set_insert, Set.smul_set_union] /-- The fv map is equivariant. -/ -lemma fv_equivariant : Function.Equivariant Var fv := by - intro t π +instance instFvEquivariant : Function.Equivariant Var fv := by + constructor; intro t π fun_induction fv <;> all_goals simp [fv, *, Set.smul_set_sdiff, Set.smul_set_union] end Preterm -- cgit v1.3.1