R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t : Finset ι
⊢ ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m m' : (i : ι) → M₁ i
t : Finset ι
⊢ ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
revert m'
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t : Finset ι
⊢ ∀ ⦃a : ι⦄ {s : Finset ι},
    ¬a ∈ s →
      (∀ (m' : (i : ι) → M₁ i),
          ↑f (Finset.piecewise s (m + m') m') = ∑ s in Finset.powerset s, ↑f (Finset.piecewise s m m')) →
        ∀ (m' : (i : ι) → M₁ i),
          ↑f (Finset.piecewise (insert a s) (m + m') m') =
            ∑ s in Finset.powerset (insert a s), ↑f (Finset.piecewise s m m')
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t : Finset ι
⊢ ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
refine' Finset.induction_on t (by simp) _
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
⊢ ↑f (Finset.piecewise (insert i t) (m + m') m') = ∑ s in Finset.powerset (insert i t), ↑f (Finset.piecewise s m m')
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t : Finset ι
⊢ ∀ ⦃a : ι⦄ {s : Finset ι},
    ¬a ∈ s →
      (∀ (m' : (i : ι) → M₁ i),
          ↑f (Finset.piecewise s (m + m') m') = ∑ s in Finset.powerset s, ↑f (Finset.piecewise s m m')) →
        ∀ (m' : (i : ι) → M₁ i),
          ↑f (Finset.piecewise (insert a s) (m + m') m') =
            ∑ s in Finset.powerset (insert a s), ↑f (Finset.piecewise s m m')
intro i t hit Hrec m'
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
⊢ ↑f (Finset.piecewise (insert i t) (m + m') m') = ∑ s in Finset.powerset (insert i t), ↑f (Finset.piecewise s m m')
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
⊢ ↑f (Finset.piecewise (insert i t) (m + m') m') = ∑ s in Finset.powerset (insert i t), ↑f (Finset.piecewise s m m')
have A : (insert i t).piecewise (m + m') m' = update (t.piecewise (m + m') m') i (m i + m' i) :=
  t.piecewise_insert _ _ _
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
⊢ ↑f (Finset.piecewise (insert i t) (m + m') m') = ∑ s in Finset.powerset (insert i t), ↑f (Finset.piecewise s m m')
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
⊢ ↑f (Finset.piecewise (insert i t) (m + m') m') = ∑ s in Finset.powerset (insert i t), ↑f (Finset.piecewise s m m')
let m'' := update m' i (m i)
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
C : update (Finset.piecewise t (m + m') m') i (m i) = Finset.piecewise t (m + m'') m''
⊢ ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m') + ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m'') =
    ∑ a in Finset.powerset t, ↑f (Finset.piecewise a m m') +
      ∑ t in Finset.powerset t, ↑f (Finset.piecewise (insert i t) m m')
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
C : update (Finset.piecewise t (m + m') m') i (m i) = Finset.piecewise t (m + m'') m''
⊢ ↑f (Finset.piecewise (insert i t) (m + m') m') = ∑ s in Finset.powerset (insert i t), ↑f (Finset.piecewise s m m')
rw [A, f.map_add, B, C, Finset.sum_powerset_insert hit, Hrec, Hrec, add_comm (_ : M₂)]
case e_a
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
C : update (Finset.piecewise t (m + m') m') i (m i) = Finset.piecewise t (m + m'') m''
⊢ ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m'') =
    ∑ t in Finset.powerset t, ↑f (Finset.piecewise (insert i t) m m')
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
C : update (Finset.piecewise t (m + m') m') i (m i) = Finset.piecewise t (m + m'') m''
⊢ ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m') + ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m'') =
    ∑ a in Finset.powerset t, ↑f (Finset.piecewise a m m') +
      ∑ t in Finset.powerset t, ↑f (Finset.piecewise (insert i t) m m')
congr 1
case e_a
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
C : update (Finset.piecewise t (m + m') m') i (m i) = Finset.piecewise t (m + m'') m''
s : Finset ι
hs : s ∈ Finset.powerset t
⊢ ↑f (Finset.piecewise s m m'') = ↑f (Finset.piecewise (insert i s) m m')
case e_a
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
C : update (Finset.piecewise t (m + m') m') i (m i) = Finset.piecewise t (m + m'') m''
⊢ ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m'') =
    ∑ t in Finset.powerset t, ↑f (Finset.piecewise (insert i t) m m')
refine Finset.sum_congr rfl fun s hs => ?_
no goals
case e_a
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
C : update (Finset.piecewise t (m + m') m') i (m i) = Finset.piecewise t (m + m'') m''
s : Finset ι
hs : s ∈ Finset.powerset t
this : Finset.piecewise (insert i s) m m' = Finset.piecewise s m m''
⊢ ↑f (Finset.piecewise s m m'') = ↑f (Finset.piecewise (insert i s) m m')
rw [this]
no goals
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t : Finset ι
⊢ ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise ∅ (m + m') m') = ∑ s in Finset.powerset ∅, ↑f (Finset.piecewise s m m')
simp
case h
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
j : ι
⊢ update (Finset.piecewise t (m + m') m') i (m' i) j = Finset.piecewise t (m + m') m' j
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
⊢ update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
ext j
case pos
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
j : ι
h : j = i
⊢ update (Finset.piecewise t (m + m') m') i (m' i) j = Finset.piecewise t (m + m') m' j

case neg
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
j : ι
h : ¬j = i
⊢ update (Finset.piecewise t (m + m') m') i (m' i) j = Finset.piecewise t (m + m') m' j
case h
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
j : ι
⊢ update (Finset.piecewise t (m + m') m') i (m' i) j = Finset.piecewise t (m + m') m' j
by_cases h : j = i
case pos
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
j : ι
h : j = i
⊢ update (Finset.piecewise t (m + m') m') i (m' i) i = Finset.piecewise t (m + m') m' i
case pos
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
j : ι
h : j = i
⊢ update (Finset.piecewise t (m + m') m') i (m' i) j = Finset.piecewise t (m + m') m' j
rw [h]
no goals
case pos
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
j : ι
h : j = i
⊢ update (Finset.piecewise t (m + m') m') i (m' i) i = Finset.piecewise t (m + m') m' i
simp [hit]
no goals
case neg
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
j : ι
h : ¬j = i
⊢ update (Finset.piecewise t (m + m') m') i (m' i) j = Finset.piecewise t (m + m') m' j
simp [h]
case h
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
j : ι
⊢ update (Finset.piecewise t (m + m') m') i (m i) j = Finset.piecewise t (m + m'') m'' j
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
⊢ update (Finset.piecewise t (m + m') m') i (m i) = Finset.piecewise t (m + m'') m''
ext j
case pos
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
j : ι
h : j = i
⊢ update (Finset.piecewise t (m + m') m') i (m i) j = Finset.piecewise t (m + m'') m'' j

case neg
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
j : ι
h : ¬j = i
⊢ update (Finset.piecewise t (m + m') m') i (m i) j = Finset.piecewise t (m + m'') m'' j
case h
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
j : ι
⊢ update (Finset.piecewise t (m + m') m') i (m i) j = Finset.piecewise t (m + m'') m'' j
by_cases h : j = i
case pos
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
j : ι
h : j = i
⊢ update (Finset.piecewise t (m + m') m') i (m i) i = Finset.piecewise t (m + m'') m'' i
case pos
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
j : ι
h : j = i
⊢ update (Finset.piecewise t (m + m') m') i (m i) j = Finset.piecewise t (m + m'') m'' j
rw [h]
no goals
case pos
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
j : ι
h : j = i
⊢ update (Finset.piecewise t (m + m') m') i (m i) i = Finset.piecewise t (m + m'') m'' i
simp [hit]
no goals
case neg
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
j : ι
h : ¬j = i
⊢ update (Finset.piecewise t (m + m') m') i (m i) j = Finset.piecewise t (m + m'') m'' j
by_cases h' : j ∈ t <;> simp [h, hit, h']
case h
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
C : update (Finset.piecewise t (m + m') m') i (m i) = Finset.piecewise t (m + m'') m''
s : Finset ι
hs : s ∈ Finset.powerset t
j : ι
⊢ Finset.piecewise (insert i s) m m' j = Finset.piecewise s m m'' j
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
C : update (Finset.piecewise t (m + m') m') i (m i) = Finset.piecewise t (m + m'') m''
s : Finset ι
hs : s ∈ Finset.powerset t
⊢ Finset.piecewise (insert i s) m m' = Finset.piecewise s m m''
ext j
case pos
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
C : update (Finset.piecewise t (m + m') m') i (m i) = Finset.piecewise t (m + m'') m''
s : Finset ι
hs : s ∈ Finset.powerset t
j : ι
h : j = i
⊢ Finset.piecewise (insert i s) m m' j = Finset.piecewise s m m'' j

case neg
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
C : update (Finset.piecewise t (m + m') m') i (m i) = Finset.piecewise t (m + m'') m''
s : Finset ι
hs : s ∈ Finset.powerset t
j : ι
h : ¬j = i
⊢ Finset.piecewise (insert i s) m m' j = Finset.piecewise s m m'' j
case h
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
C : update (Finset.piecewise t (m + m') m') i (m i) = Finset.piecewise t (m + m'') m''
s : Finset ι
hs : s ∈ Finset.powerset t
j : ι
⊢ Finset.piecewise (insert i s) m m' j = Finset.piecewise s m m'' j
by_cases h : j = i
case pos
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
C : update (Finset.piecewise t (m + m') m') i (m i) = Finset.piecewise t (m + m'') m''
s : Finset ι
hs : s ∈ Finset.powerset t
j : ι
h : j = i
⊢ Finset.piecewise (insert i s) m m' i = Finset.piecewise s m m'' i
case pos
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
C : update (Finset.piecewise t (m + m') m') i (m i) = Finset.piecewise t (m + m'') m''
s : Finset ι
hs : s ∈ Finset.powerset t
j : ι
h : j = i
⊢ Finset.piecewise (insert i s) m m' j = Finset.piecewise s m m'' j
rw [h]
no goals
case pos
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
C : update (Finset.piecewise t (m + m') m') i (m i) = Finset.piecewise t (m + m'') m''
s : Finset ι
hs : s ∈ Finset.powerset t
j : ι
h : j = i
⊢ Finset.piecewise (insert i s) m m' i = Finset.piecewise s m m'' i
simp [Finset.not_mem_of_mem_powerset_of_not_mem hs hit]
no goals
case neg
R : Type u
ι : Type u'
n : ℕ
M : Fin (Nat.succ n) → Type v
M₁ : ι → Type v₁
M₂ : Type v₂
M₃ : Type v₃
M' : Type v'
inst✝¹¹ : Semiring R
inst✝¹⁰ : (i : Fin (Nat.succ n)) → AddCommMonoid (M i)
inst✝⁹ : (i : ι) → AddCommMonoid (M₁ i)
inst✝⁸ : AddCommMonoid M₂
inst✝⁷ : AddCommMonoid M₃
inst✝⁶ : AddCommMonoid M'
inst✝⁵ : (i : Fin (Nat.succ n)) → Module R (M i)
inst✝⁴ : (i : ι) → Module R (M₁ i)
inst✝³ : Module R M₂
inst✝² : Module R M₃
inst✝¹ : Module R M'
f f' : MultilinearMap R M₁ M₂
inst✝ : DecidableEq ι
m : (i : ι) → M₁ i
t✝ : Finset ι
i : ι
t : Finset ι
hit : ¬i ∈ t
Hrec :
  ∀ (m' : (i : ι) → M₁ i), ↑f (Finset.piecewise t (m + m') m') = ∑ s in Finset.powerset t, ↑f (Finset.piecewise s m m')
m' : (i : ι) → M₁ i
A : Finset.piecewise (insert i t) (m + m') m' = update (Finset.piecewise t (m + m') m') i (m i + m' i)
B : update (Finset.piecewise t (m + m') m') i (m' i) = Finset.piecewise t (m + m') m'
m'' : (a : ι) → M₁ a := update m' i (m i)
C : update (Finset.piecewise t (m + m') m') i (m i) = Finset.piecewise t (m + m'') m''
s : Finset ι
hs : s ∈ Finset.powerset t
j : ι
h : ¬j = i
⊢ Finset.piecewise (insert i s) m m' j = Finset.piecewise s m m'' j
by_cases h' : j ∈ s <;> simp [h, h']