Documentation

NominalSets.Perm.Defs

Permutations #

This file defines finite permutations and related operations.

structure NominalSets.Perm (๐”ธ : Type u_1) :
Type u_1

The type of finite permutations on a type ๐”ธ.

  • toFun : ๐”ธ โ†’ ๐”ธ

    The forward permutation.

  • invFun : ๐”ธ โ†’ ๐”ธ

    The inverse permutation.

  • right_inverse' (a : ๐”ธ) : self.toFun (self.invFun a) = a

    invFun is a right inverse of toFun.

  • left_inverse' (a : ๐”ธ) : self.invFun (self.toFun a) = a

    invFun is a left inverse of toFun.

  • has_supp' : โˆƒ (A : Finset ๐”ธ), โˆ€ a โˆ‰ A, self.toFun a = a

    toFun is finitely supported.

Instances For
    instance NominalSets.Perm.instFunLike {๐”ธ : Type u_1} :
    FunLike (Perm ๐”ธ) ๐”ธ ๐”ธ
    Equations
    instance NominalSets.Perm.instInv {๐”ธ : Type u_1} :
    Inv (Perm ๐”ธ)
    Equations
    def NominalSets.Perm.Simps.coe {๐”ธ : Type u_1} (ฯ€ : Perm ๐”ธ) :
    ๐”ธ โ†’ ๐”ธ

    A simps projection for function coercion.

    Equations
    Instances For
      def NominalSets.Perm.Simps.inv_coe {๐”ธ : Type u_1} (ฯ€ : Perm ๐”ธ) :
      ๐”ธ โ†’ ๐”ธ

      A simps projection for inverse function coercion.

      Equations
      Instances For
        @[simp]
        theorem NominalSets.Perm.right_inverse {๐”ธ : Type u_1} (ฯ€ : Perm ๐”ธ) (a : ๐”ธ) :
        ฯ€ (ฯ€โปยน a) = a
        @[simp]
        theorem NominalSets.Perm.left_inverse {๐”ธ : Type u_1} (ฯ€ : Perm ๐”ธ) (a : ๐”ธ) :
        ฯ€โปยน (ฯ€ a) = a
        theorem NominalSets.Perm.has_supp {๐”ธ : Type u_1} (ฯ€ : Perm ๐”ธ) :
        โˆƒ (A : Finset ๐”ธ), โˆ€ a โˆ‰ A, ฯ€ a = a
        instance NominalSets.Perm.instOne {๐”ธ : Type u_1} :
        One (Perm ๐”ธ)
        Equations
        • NominalSets.Perm.instOne = { one := { toFun := fun (a : ๐”ธ) => a, invFun := fun (a : ๐”ธ) => a, right_inverse' := โ‹ฏ, left_inverse' := โ‹ฏ, has_supp' := โ‹ฏ } }
        @[simp]
        theorem NominalSets.Perm.one_coe {๐”ธ : Type u_1} (a : ๐”ธ) :
        1 a = a
        @[simp]
        theorem NominalSets.Perm.one_inv_coe {๐”ธ : Type u_1} (a : ๐”ธ) :
        instance NominalSets.Perm.instMul {๐”ธ : Type u_1} :
        Mul (Perm ๐”ธ)
        Equations
        • One or more equations did not get rendered due to their size.
        @[simp]
        theorem NominalSets.Perm.mul_inv_coe {๐”ธ : Type u_1} (ฯ€โ‚ ฯ€โ‚‚ : Perm ๐”ธ) (a : ๐”ธ) :
        (ฯ€โ‚ * ฯ€โ‚‚)โปยน a = ฯ€โ‚‚โปยน (ฯ€โ‚โปยน a)
        @[simp]
        theorem NominalSets.Perm.mul_coe {๐”ธ : Type u_1} (ฯ€โ‚ ฯ€โ‚‚ : Perm ๐”ธ) (a : ๐”ธ) :
        (ฯ€โ‚ * ฯ€โ‚‚) a = ฯ€โ‚ (ฯ€โ‚‚ a)
        def NominalSets.Perm.swap {๐”ธ : Type u_1} (a b : ๐”ธ) [DecidableEq ๐”ธ] :
        Perm ๐”ธ

        The permutation that simply swaps two elements.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem NominalSets.Perm.swap_coe {๐”ธ : Type u_1} (a b : ๐”ธ) [DecidableEq ๐”ธ] (c : ๐”ธ) :
          (swap a b) c = if a = c then b else if b = c then a else c
          @[simp]
          theorem NominalSets.Perm.swap_inv_coe {๐”ธ : Type u_1} (a b : ๐”ธ) [DecidableEq ๐”ธ] (c : ๐”ธ) :
          (swap a b)โปยน c = if a = c then b else if b = c then a else c
          def NominalSets.Perm.seq {๐”ธ : Type u_1} [DecidableEq ๐”ธ] :
          List (๐”ธ ร— ๐”ธ) โ†’ Perm ๐”ธ

          A sequence of pairs induces a permutation constructed as a sequences of swaps.

          Equations
          Instances For