A function f
has slice-rank at most n
if it can be written as the sum of n
functions
of the form x ↦ g (x i) * h (x 1, ..., x (i - 1), x (i + 1), ..., x k)
.
- zero: ∀ {ι : Type u_1} {R : Type u_2} {α : ι → Type u_3} [inst : Semiring R], HasSliceRankLE 0 0
- succ: ∀ {ι : Type u_1} {R : Type u_2} {α : ι → Type u_3} [inst : Semiring R] ⦃n : ℕ⦄ ⦃f : ((i : ι) → α i) → R⦄ ⦃i : ι⦄ (g : α i → R) (h : ((j : ι) → j ≠ i → α j) → R), HasSliceRankLE n f → HasSliceRankLE (n + 1) (f + fun (x : (i : ι) → α i) => g (x i) * h fun (j : ι) (x_1 : j ≠ i) => x j)
Instances For
@[simp]
theorem
hasSliceRankLE_zero
{ι : Type u_1}
{R : Type u_2}
{α : ι → Type u_3}
[Semiring R]
{f : ((i : ι) → α i) → R}
:
HasSliceRankLE 0 f ↔ f = 0
theorem
hasSliceRankLE_succ
{ι : Type u_1}
{R : Type u_2}
{α : ι → Type u_3}
[Semiring R]
{n : ℕ}
{f : ((i : ι) → α i) → R}
:
HasSliceRankLE (n + 1) f ↔ ∃ (f' : ((i : ι) → α i) → R) (i : ι) (g : α i → R) (h : ((j : ι) → j ≠ i → α j) → R),
HasSliceRankLE n f' ∧ f = f' + fun (x : (i : ι) → α i) => g (x i) * h fun (j : ι) (x_1 : j ≠ i) => x j
theorem
HasSliceRankLE.add
{ι : Type u_1}
{R : Type u_2}
{α : ι → Type u_3}
[Semiring R]
{m : ℕ}
{f₁ : ((i : ι) → α i) → R}
(h₁ : HasSliceRankLE m f₁)
{n : ℕ}
{f₂ : ((i : ι) → α i) → R}
:
HasSliceRankLE n f₂ → HasSliceRankLE (m + n) (f₁ + f₂)
theorem
hasSliceRankLE_card
{ι : Type u_1}
{R : Type u_2}
{α : ι → Type u_3}
[Semiring R]
[DecidableEq ι]
[Fintype ι]
[(i : ι) → Fintype (α i)]
(f : ((i : ι) → α i) → R)
:
HasSliceRankLE (Fintype.card ((i : ι) → α i)) f
Any function has slice-rank bounded by the cardinality of its domain.
theorem
exists_hasSliceRankLE
{ι : Type u_1}
{R : Type u_2}
{α : ι → Type u_3}
[Semiring R]
[DecidableEq ι]
[Finite ι]
[∀ (i : ι), Finite (α i)]
(f : ((i : ι) → α i) → R)
:
∃ (n : ℕ), HasSliceRankLE n f
Any function from a finite type has finite slice-rank.