Support Utilities for Nominal Sets #
This file provides additional utilities and notations for working with support
in nominal sets. It builds on top of the core definitions in Nominal.lean
and Fresh.lean.
Main definitions #
References #
- Pitts, Nominal Sets: Names and Symmetry in Computer Science, Cambridge University Press, 2013, Chapter 2.
- Larsen and Schürmann, Nominal State-Separating Proofs, IACR ePrint 2025/598 — the SSProve
Nominal/layer this development ports. - SSProve
theories/Crypt/nominal/Nominal.v
Support utilities #
@[reducible, inline]
Get the support of a value in a nominal set (convenient alias for NomSet.supp)
Equations
Instances For
Notation #
Notation for freshness: a # x means atom a is fresh for x
Equations
- CatCrypt.Nominal.«term_#_» = Lean.ParserDescr.trailingNode `CatCrypt.Nominal.«term_#_» 50 0 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " # ") (Lean.ParserDescr.cat `term 0))
Instances For
Additional lemmas #
Fresh atom generation for a single element
Equations
Instances For
theorem
CatCrypt.Nominal.freshForOne_fresh
{α : Type u_1}
[NomSet α]
(x : α)
:
Fresh (freshForOne x) x