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} [Semiring R] : HasSliceRankLE 0 0
- succ {ι : Type u_1} {R : Type u_2} {α : ι → Type u_3} [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} :
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] [Finite ι] [∀ (i : ι), Finite (α i)] (f : ((i : ι) → α i) → R) :
∃ (n : ℕ), HasSliceRankLE n f
Any function from a finite type has finite slice-rank.