Theorem: Finset.SupIndep.sigma
File: Mathlib/Order/SupIndep.lean

tactic: rintro t ht ⟨i, b⟩ hi hit
state_before: α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
⊢ (s.sigma g).SupIndep f
state_after: case mk
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩ ∈ s.sigma g
hit : ⟨i, b⟩ ∉ t
⊢ Disjoint (f ⟨i, b⟩) (t.sup f)

tactic: rw [Finset.disjoint_sup_right]
state_before: case mk
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩ ∈ s.sigma g
hit : ⟨i, b⟩ ∉ t
⊢ Disjoint (f ⟨i, b⟩) (t.sup f)
state_after: case mk
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩ ∈ s.sigma g
hit : ⟨i, b⟩ ∉ t
⊢ ∀ ⦃i_1 : (i : ι) × β i⦄, i_1 ∈ t → Disjoint (f ⟨i, b⟩) (f i_1)

tactic: rintro ⟨j, c⟩ hj
state_before: case mk
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩ ∈ s.sigma g
hit : ⟨i, b⟩ ∉ t
⊢ ∀ ⦃i_1 : (i : ι) × β i⦄, i_1 ∈ t → Disjoint (f ⟨i, b⟩) (f i_1)
state_after: case mk.mk
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩ ∈ s.sigma g
hit : ⟨i, b⟩ ∉ t
j : ι
c : β j
hj : ⟨j, c⟩ ∈ t
⊢ Disjoint (f ⟨i, b⟩) (f ⟨j, c⟩)

tactic: have hbc := (ne_of_mem_of_not_mem hj hit).symm
state_before: case mk.mk
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩ ∈ s.sigma g
hit : ⟨i, b⟩ ∉ t
j : ι
c : β j
hj : ⟨j, c⟩ ∈ t
⊢ Disjoint (f ⟨i, b⟩) (f ⟨j, c⟩)
state_after: case mk.mk
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩ ∈ s.sigma g
hit : ⟨i, b⟩ ∉ t
j : ι
c : β j
hj : ⟨j, c⟩ ∈ t
hbc : ⟨i, b⟩ ≠ ⟨j, c⟩
⊢ Disjoint (f ⟨i, b⟩) (f ⟨j, c⟩)

tactic: replace hj := ht hj
state_before: case mk.mk
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩ ∈ s.sigma g
hit : ⟨i, b⟩ ∉ t
j : ι
c : β j
hj : ⟨j, c⟩ ∈ t
hbc : ⟨i, b⟩ ≠ ⟨j, c⟩
⊢ Disjoint (f ⟨i, b⟩) (f ⟨j, c⟩)
state_after: case mk.mk
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩ ∈ s.sigma g
hit : ⟨i, b⟩ ∉ t
j : ι
c : β j
hbc : ⟨i, b⟩ ≠ ⟨j, c⟩
hj : ⟨j, c⟩ ∈ s.sigma g
⊢ Disjoint (f ⟨i, b⟩) (f ⟨j, c⟩)

tactic: rw [mem_sigma] at hi hj
state_before: case mk.mk
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩ ∈ s.sigma g
hit : ⟨i, b⟩ ∉ t
j : ι
c : β j
hbc : ⟨i, b⟩ ≠ ⟨j, c⟩
hj : ⟨j, c⟩ ∈ s.sigma g
⊢ Disjoint (f ⟨i, b⟩) (f ⟨j, c⟩)
state_after: case mk.mk
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩.fst ∈ s ∧ ⟨i, b⟩.snd ∈ g ⟨i, b⟩.fst
hit : ⟨i, b⟩ ∉ t
j : ι
c : β j
hbc : ⟨i, b⟩ ≠ ⟨j, c⟩
hj : ⟨j, c⟩.fst ∈ s ∧ ⟨j, c⟩.snd ∈ g ⟨j, c⟩.fst
⊢ Disjoint (f ⟨i, b⟩) (f ⟨j, c⟩)

tactic: obtain rfl | hij := eq_or_ne i j
state_before: case mk.mk
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩.fst ∈ s ∧ ⟨i, b⟩.snd ∈ g ⟨i, b⟩.fst
hit : ⟨i, b⟩ ∉ t
j : ι
c : β j
hbc : ⟨i, b⟩ ≠ ⟨j, c⟩
hj : ⟨j, c⟩.fst ∈ s ∧ ⟨j, c⟩.snd ∈ g ⟨j, c⟩.fst
⊢ Disjoint (f ⟨i, b⟩) (f ⟨j, c⟩)
state_after: case mk.mk.inl
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩.fst ∈ s ∧ ⟨i, b⟩.snd ∈ g ⟨i, b⟩.fst
hit : ⟨i, b⟩ ∉ t
c : β i
hbc : ⟨i, b⟩ ≠ ⟨i, c⟩
hj : ⟨i, c⟩.fst ∈ s ∧ ⟨i, c⟩.snd ∈ g ⟨i, c⟩.fst
⊢ Disjoint (f ⟨i, b⟩) (f ⟨i, c⟩)

case mk.mk.inr
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩.fst ∈ s ∧ ⟨i, b⟩.snd ∈ g ⟨i, b⟩.fst
hit : ⟨i, b⟩ ∉ t
j : ι
c : β j
hbc : ⟨i, b⟩ ≠ ⟨j, c⟩
hj : ⟨j, c⟩.fst ∈ s ∧ ⟨j, c⟩.snd ∈ g ⟨j, c⟩.fst
hij : i ≠ j
⊢ Disjoint (f ⟨i, b⟩) (f ⟨j, c⟩)

tactic: exact (hg _ hj.1).pairwiseDisjoint hi.2 hj.2 (sigma_mk_injective.ne_iff.1 hbc)
state_before: case mk.mk.inl
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩.fst ∈ s ∧ ⟨i, b⟩.snd ∈ g ⟨i, b⟩.fst
hit : ⟨i, b⟩ ∉ t
c : β i
hbc : ⟨i, b⟩ ≠ ⟨i, c⟩
hj : ⟨i, c⟩.fst ∈ s ∧ ⟨i, c⟩.snd ∈ g ⟨i, c⟩.fst
⊢ Disjoint (f ⟨i, b⟩) (f ⟨i, c⟩)
state_after: no goals

tactic: refine (hs.pairwiseDisjoint hi.1 hj.1 hij).mono ?_ ?_
state_before: case mk.mk.inr
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩.fst ∈ s ∧ ⟨i, b⟩.snd ∈ g ⟨i, b⟩.fst
hit : ⟨i, b⟩ ∉ t
j : ι
c : β j
hbc : ⟨i, b⟩ ≠ ⟨j, c⟩
hj : ⟨j, c⟩.fst ∈ s ∧ ⟨j, c⟩.snd ∈ g ⟨j, c⟩.fst
hij : i ≠ j
⊢ Disjoint (f ⟨i, b⟩) (f ⟨j, c⟩)
state_after: case mk.mk.inr.refine_1
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩.fst ∈ s ∧ ⟨i, b⟩.snd ∈ g ⟨i, b⟩.fst
hit : ⟨i, b⟩ ∉ t
j : ι
c : β j
hbc : ⟨i, b⟩ ≠ ⟨j, c⟩
hj : ⟨j, c⟩.fst ∈ s ∧ ⟨j, c⟩.snd ∈ g ⟨j, c⟩.fst
hij : i ≠ j
⊢ f ⟨i, b⟩ ≤ (fun i => (g i).sup fun b => f ⟨i, b⟩) ⟨i, b⟩.fst

case mk.mk.inr.refine_2
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩.fst ∈ s ∧ ⟨i, b⟩.snd ∈ g ⟨i, b⟩.fst
hit : ⟨i, b⟩ ∉ t
j : ι
c : β j
hbc : ⟨i, b⟩ ≠ ⟨j, c⟩
hj : ⟨j, c⟩.fst ∈ s ∧ ⟨j, c⟩.snd ∈ g ⟨j, c⟩.fst
hij : i ≠ j
⊢ f ⟨j, c⟩ ≤ (fun i => (g i).sup fun b => f ⟨i, b⟩) ⟨j, c⟩.fst

tactic: convert le_sup (α := α) hi.2
state_before: case mk.mk.inr.refine_1
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩.fst ∈ s ∧ ⟨i, b⟩.snd ∈ g ⟨i, b⟩.fst
hit : ⟨i, b⟩ ∉ t
j : ι
c : β j
hbc : ⟨i, b⟩ ≠ ⟨j, c⟩
hj : ⟨j, c⟩.fst ∈ s ∧ ⟨j, c⟩.snd ∈ g ⟨j, c⟩.fst
hij : i ≠ j
⊢ f ⟨i, b⟩ ≤ (fun i => (g i).sup fun b => f ⟨i, b⟩) ⟨i, b⟩.fst
state_after: case h.e'_3
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩.fst ∈ s ∧ ⟨i, b⟩.snd ∈ g ⟨i, b⟩.fst
hit : ⟨i, b⟩ ∉ t
j : ι
c : β j
hbc : ⟨i, b⟩ ≠ ⟨j, c⟩
hj : ⟨j, c⟩.fst ∈ s ∧ ⟨j, c⟩.snd ∈ g ⟨j, c⟩.fst
hij : i ≠ j
⊢ f ⟨i, b⟩ = f ⟨⟨i, b⟩.fst, ⟨i, b⟩.snd⟩

tactic: simp
state_before: case h.e'_3
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩.fst ∈ s ∧ ⟨i, b⟩.snd ∈ g ⟨i, b⟩.fst
hit : ⟨i, b⟩ ∉ t
j : ι
c : β j
hbc : ⟨i, b⟩ ≠ ⟨j, c⟩
hj : ⟨j, c⟩.fst ∈ s ∧ ⟨j, c⟩.snd ∈ g ⟨j, c⟩.fst
hij : i ≠ j
⊢ f ⟨i, b⟩ = f ⟨⟨i, b⟩.fst, ⟨i, b⟩.snd⟩
state_after: no goals

tactic: convert le_sup (α := α) hj.2
state_before: case mk.mk.inr.refine_2
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩.fst ∈ s ∧ ⟨i, b⟩.snd ∈ g ⟨i, b⟩.fst
hit : ⟨i, b⟩ ∉ t
j : ι
c : β j
hbc : ⟨i, b⟩ ≠ ⟨j, c⟩
hj : ⟨j, c⟩.fst ∈ s ∧ ⟨j, c⟩.snd ∈ g ⟨j, c⟩.fst
hij : i ≠ j
⊢ f ⟨j, c⟩ ≤ (fun i => (g i).sup fun b => f ⟨i, b⟩) ⟨j, c⟩.fst
state_after: case h.e'_3
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩.fst ∈ s ∧ ⟨i, b⟩.snd ∈ g ⟨i, b⟩.fst
hit : ⟨i, b⟩ ∉ t
j : ι
c : β j
hbc : ⟨i, b⟩ ≠ ⟨j, c⟩
hj : ⟨j, c⟩.fst ∈ s ∧ ⟨j, c⟩.snd ∈ g ⟨j, c⟩.fst
hij : i ≠ j
⊢ f ⟨j, c⟩ = f ⟨⟨j, c⟩.fst, ⟨j, c⟩.snd⟩

tactic: simp
state_before: case h.e'_3
α : Type u_1
β✝ : Type u_2
ι : Type u_3
ι' : Type u_4
inst✝¹ : DistribLattice α
inst✝ : OrderBot α
s✝ : Finset ι
f✝ : ι → α
β : ι → Type u_5
s : Finset ι
g : (i : ι) → Finset (β i)
f : Sigma β → α
hs : s.SupIndep fun i => (g i).sup fun b => f ⟨i, b⟩
hg : ∀ i ∈ s, (g i).SupIndep fun b => f ⟨i, b⟩
t : Finset ((i : ι) × β i)
ht : t ⊆ s.sigma g
i : ι
b : β i
hi : ⟨i, b⟩.fst ∈ s ∧ ⟨i, b⟩.snd ∈ g ⟨i, b⟩.fst
hit : ⟨i, b⟩ ∉ t
j : ι
c : β j
hbc : ⟨i, b⟩ ≠ ⟨j, c⟩
hj : ⟨j, c⟩.fst ∈ s ∧ ⟨j, c⟩.snd ∈ g ⟨j, c⟩.fst
hij : i ≠ j
⊢ f ⟨j, c⟩ = f ⟨⟨j, c⟩.fst, ⟨j, c⟩.snd⟩
state_after: no goals