Documentation

Nominal.Atom

Atoms for Nominal Sets #

This file defines atoms, which are abstract names used in nominal set theory. Atoms are represented as wrapped natural numbers, providing a countably infinite supply of distinguishable names.

Main definitions #

References #

Atoms are abstract names, represented as wrapped natural numbers. This provides a countably infinite supply of distinguishable names.

Instances For
    def CatCrypt.Nominal.instDecidableEqAtom.decEq (x✝ x✝¹ : Atom) :
    Decidable (x✝ = x✝¹)
    Equations
    Instances For
      theorem CatCrypt.Nominal.Atom.ext {a b : Atom} (h : a.val = b.val) :
      a = b
      @[implicit_reducible]
      Equations
      @[implicit_reducible]

      Coercion to natural numbers

      Equations
      @[implicit_reducible]

      Linear order on atoms inherited from naturals

      Equations

      Constructor from natural number

      Equations
      Instances For
        @[simp]
        noncomputable def CatCrypt.Nominal.Atom.offset (s : Finset Atom) :

        Offset: one plus the maximum in a set, used for fresh generation

        Equations
        Instances For
          noncomputable def CatCrypt.Nominal.Atom.fresh (s : Finset Atom) :

          Fresh atom: the smallest atom not in the given set

          Equations
          Instances For

            The fresh atom is not in the original set

            theorem CatCrypt.Nominal.Atom.fresh_val_gt {s : Finset Atom} {a : Atom} (ha : a s) :
            a.val < (fresh s).val

            Fresh atom has value greater than all atoms in the set

            noncomputable def CatCrypt.Nominal.Atom.freshN (s : Finset Atom) (n : ) :

            Generate n fresh atoms not in the given set

            Equations
            Instances For

              Two distinct atoms

              Equations
              Instances For