summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHannes Schulze <contact@haschu.me>2026-04-15 16:31:13 +0200
committerHannes Schulze <contact@haschu.me>2026-04-15 16:31:13 +0200
commite474e89339047bd370ec423da75f7be2768b7a1b (patch)
tree06eabe866bcf27f60dab493ab5a3d9c90263adb0
parent2e5f7e22761bd30857bbe067862a8b256805ecd8 (diff)
add readmeHEADmain
-rw-r--r--readme.md26
1 files changed, 26 insertions, 0 deletions
diff --git a/readme.md b/readme.md
new file mode 100644
index 0000000..00f3c89
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,26 @@
+# Nominal Sets in Lean 4
+
+WIP formalization of nominal sets in Lean 4.
+The formalization is mostly based on:
+- Pitts, A. M. Nominal Sets: Names and Symmetry in Computer Science. Cambridge Tracts in Theoretical Computer Science 57. Cambridge University Press, 2013.
+- Wißmann, Thorsten. Nominal Sets. Skript zur Vorlesung. FAU Erlangen-Nürnberg, October 11, 2024. https://www8.cs.fau.de/ext/teaching/sose2024/nominal-sets/nominal-sets-wissmann-skript.pdf.
+
+The library is structured as follows:
+- `Nominal.Permutations`:
+ Definition of the subgroup `FPerm` of finitely supported permutations and of `PermSet`s (i.e., sets on which `FPerm` operates).
+- `Nominal.Support`:
+ Definition of support, nominal sets, the least finite support, and some helpers.
+- `Nominal.Equivariance`:
+ Definition of equivariant functions, sets, and relations and some helper lemmas about them.
+- `Nominal.Category`:
+ Definition of the `Nom` category.
+- `Nominal.Instances.Basic`:
+ Some basic instances of nominal sets: discrete nominal sets, the set of atoms, products, coproducts, finitary functions, quotient types, and subtypes.
+- `Nominal.Instances.Abstraction`:
+ Definition of name abstractions and alpha-equivalence, followed by the name abstraction functor.
+- `Nominal.Instances.Finsupp`:
+ Definition of subsets of `PermSet`s with finite support, especially finitely supported sets and functions.
+- `Nominal.LambdaCalculus.Preterms`:
+ Lambda terms as an example of nominal sets, showing that `supp` corresponds to the variables in a term.
+- `Nominal.LambdaCalculus.Terms`:
+ Lambda terms modulo alpha-equivalence as an example, showing that `supp` corresponds to the free variables in a term. \ No newline at end of file