case h
F : Type ?u.2553
ι : Type ?u.2556
α : Type u_1
β : Type u_2
γ : Type ?u.2565
f : α → β → β
op : α → α → α
a : α
b : β
a✝ : List α
h : Set.Pairwise {x | x ∈ a ::ₘ Quotient.mk (List.isSetoid α) a✝} fun x y => ∀ (b : β), f x (f y b) = f y (f x b)
h' : Set.Pairwise {x | x ∈ Quotient.mk (List.isSetoid α) a✝} fun x y => ∀ (b : β), f x (f y b) = f y (f x b)
⊢ noncommFoldr f (a ::ₘ Quotient.mk (List.isSetoid α) a✝) h b =
    f a (noncommFoldr f (Quotient.mk (List.isSetoid α) a✝) h' b)
F : Type ?u.2553
ι : Type ?u.2556
α : Type u_1
β : Type u_2
γ : Type ?u.2565
f : α → β → β
op : α → α → α
s : Multiset α
a : α
h : Set.Pairwise {x | x ∈ a ::ₘ s} fun x y => ∀ (b : β), f x (f y b) = f y (f x b)
h' : Set.Pairwise {x | x ∈ s} fun x y => ∀ (b : β), f x (f y b) = f y (f x b)
b : β
⊢ noncommFoldr f (a ::ₘ s) h b = f a (noncommFoldr f s h' b)
induction s using Quotient.inductionOn
no goals
case h
F : Type ?u.2553
ι : Type ?u.2556
α : Type u_1
β : Type u_2
γ : Type ?u.2565
f : α → β → β
op : α → α → α
a : α
b : β
a✝ : List α
h : Set.Pairwise {x | x ∈ a ::ₘ Quotient.mk (List.isSetoid α) a✝} fun x y => ∀ (b : β), f x (f y b) = f y (f x b)
h' : Set.Pairwise {x | x ∈ Quotient.mk (List.isSetoid α) a✝} fun x y => ∀ (b : β), f x (f y b) = f y (f x b)
⊢ noncommFoldr f (a ::ₘ Quotient.mk (List.isSetoid α) a✝) h b =
    f a (noncommFoldr f (Quotient.mk (List.isSetoid α) a✝) h' b)
simp