List Permutations #
This file introduces the List.Perm
relation, which is true if two lists are permutations of one
another.
Notation #
The notation ~
is used for permutation equivalence.
theorem
List.Subperm.filter
{α : Type u_1}
(p : α → Bool)
⦃l l' : List α⦄
(h : l.Subperm l')
:
(List.filter p l).Subperm (List.filter p l')
theorem
List.Subperm.count_le
{α : Type u_1}
[DecidableEq α]
{l₁ l₂ : List α}
(s : l₁.Subperm l₂)
(a : α)
:
theorem
List.Subperm.erase
{α : Type u_1}
[DecidableEq α]
{l₁ l₂ : List α}
(a : α)
(h : l₁.Subperm l₂)
:
theorem
List.Perm.diff_right
{α : Type u_1}
[DecidableEq α]
{l₁ l₂ : List α}
(t : List α)
(h : l₁.Perm l₂)
:
theorem
List.Perm.diff_left
{α : Type u_1}
[DecidableEq α]
(l : List α)
{t₁ t₂ : List α}
(h : t₁.Perm t₂)
:
theorem
List.Perm.diff
{α : Type u_1}
[DecidableEq α]
{l₁ l₂ t₁ t₂ : List α}
(hl : l₁.Perm l₂)
(ht : t₁.Perm t₂)
:
theorem
List.Subperm.diff_right
{α : Type u_1}
[DecidableEq α]
{l₁ l₂ : List α}
(h : l₁.Subperm l₂)
(t : List α)
:
instance
List.decidableSubperm
{α : Type u_1}
[DecidableEq α]
:
DecidableRel fun (x1 x2 : List α) => x1.Subperm x2
Equations
- x✝¹.decidableSubperm x✝ = decidable_of_iff (x✝¹.isSubperm x✝ = true) ⋯
theorem
List.Perm.union_right
{α : Type u_1}
[DecidableEq α]
{l₁ l₂ : List α}
(t₁ : List α)
(h : l₁.Perm l₂)
:
theorem
List.Perm.union_left
{α : Type u_1}
[DecidableEq α]
(l : List α)
{t₁ t₂ : List α}
(h : t₁.Perm t₂)
:
theorem
List.Perm.union
{α : Type u_1}
[DecidableEq α]
{l₁ l₂ t₁ t₂ : List α}
(p₁ : l₁.Perm l₂)
(p₂ : t₁.Perm t₂)
:
theorem
List.Perm.inter_left
{α : Type u_1}
[DecidableEq α]
(l : List α)
{t₁ t₂ : List α}
(p : t₁.Perm t₂)
:
theorem
List.Perm.inter
{α : Type u_1}
[DecidableEq α]
{l₁ l₂ t₁ t₂ : List α}
(p₁ : l₁.Perm l₂)
(p₂ : t₁.Perm t₂)
:
theorem
List.Perm.insertP
{α : Type u_1}
{l₁ l₂ : List α}
(p : α → Bool)
(a : α)
(h : l₁.Perm l₂)
:
(List.insertP p a l₁).Perm (List.insertP p a l₂)
@[deprecated List.merge_perm_append (since := "2025-01-04")]
Alias of List.merge_perm_append
.