combinatorics.compositionMathlib.Combinatorics.Composition

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

refactor(tactic/wlog): simplify and speed up wlog (#16495)

Benefits:

  • The tactic is faster
  • The tactic is easier to port to Lean 4

Downside:

  • The tactic doesn't do any heavy-lifting for the user

Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/wlog/near/296996966

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -341,14 +341,12 @@ lemma disjoint_range {i₁ i₂ : fin c.length} (h : i₁ ≠ i₂) :
   disjoint (set.range (c.embedding i₁)) (set.range (c.embedding i₂)) :=
 begin
   classical,
-  wlog h' : i₁ ≤ i₂ using i₁ i₂,
-  swap, exact (this h.symm).symm,
+  wlog h' : i₁ < i₂, { exact (this c h.symm (h.lt_or_lt.resolve_left h')).symm },
   by_contradiction d,
   obtain ⟨x, hx₁, hx₂⟩ :
     ∃ x : fin n, (x ∈ set.range (c.embedding i₁) ∧ x ∈ set.range (c.embedding i₂)) :=
   set.not_disjoint_iff.1 d,
-  have : i₁ < i₂ := lt_of_le_of_ne h' h,
-  have A : (i₁ : ℕ).succ ≤ i₂ := nat.succ_le_of_lt this,
+  have A : (i₁ : ℕ).succ ≤ i₂ := nat.succ_le_of_lt h',
   apply lt_irrefl (x : ℕ),
   calc (x : ℕ) < c.size_up_to (i₁ : ℕ).succ : (c.mem_range_embedding_iff.1 hx₁).2
   ... ≤ c.size_up_to (i₂ : ℕ) : monotone_sum_take _ A

(no changes)

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Sébastien Gouëzel
 -/
 import Data.Finset.Sort
-import Algebra.BigOperators.Order
+import Algebra.Order.BigOperators.Group.Finset
 import Algebra.BigOperators.Fin
 
 #align_import combinatorics.composition from "leanprover-community/mathlib"@"ac34df03f74e6f797efd6991df2e3b7f7d8d33e0"
Diff
@@ -379,7 +379,7 @@ In the next definition `index` we use `nat.find` to produce the minimal such ind
 theorem index_exists {j : ℕ} (h : j < n) : ∃ i : ℕ, j < c.sizeUpTo i.succ ∧ i < c.length :=
   by
   have n_pos : 0 < n := lt_of_le_of_lt (zero_le j) h
-  have : 0 < c.blocks.sum := by rwa [← c.blocks_sum] at n_pos 
+  have : 0 < c.blocks.sum := by rwa [← c.blocks_sum] at n_pos
   have length_pos : 0 < c.blocks.length := length_pos_of_sum_pos (blocks c) this
   refine' ⟨c.length.pred, _, Nat.pred_lt (ne_of_gt length_pos)⟩
   have : c.length.pred.succ = c.length := Nat.succ_pred_eq_of_pos length_pos
@@ -405,7 +405,7 @@ theorem sizeUpTo_index_le (j : Fin n) : c.sizeUpTo (c.index j) ≤ j :=
   by
   by_contra H
   set i := c.index j with hi
-  push_neg at H 
+  push_neg at H
   have i_pos : (0 : ℕ) < i := by
     by_contra! i_pos
     revert H; simp [nonpos_iff_eq_zero.1 i_pos, c.size_up_to_zero]
@@ -413,7 +413,7 @@ theorem sizeUpTo_index_le (j : Fin n) : c.sizeUpTo (c.index j) ≤ j :=
   have i₁_lt_i : i₁ < i := Nat.pred_lt (ne_of_gt i_pos)
   have i₁_succ : i₁.succ = i := Nat.succ_pred_eq_of_pos i_pos
   have := Nat.find_min (c.index_exists j.2) i₁_lt_i
-  simp [lt_trans i₁_lt_i (c.index j).2, i₁_succ] at this 
+  simp [lt_trans i₁_lt_i (c.index j).2, i₁_succ] at this
   exact Nat.lt_le_asymm H this
 #align composition.size_up_to_index_le Composition.sizeUpTo_index_le
 -/
@@ -452,8 +452,8 @@ theorem mem_range_embedding_iff {j : Fin n} {i : Fin c.length} :
   constructor
   · intro h
     rcases Set.mem_range.2 h with ⟨k, hk⟩
-    rw [Fin.ext_iff] at hk 
-    change c.size_up_to i + k = (j : ℕ) at hk 
+    rw [Fin.ext_iff] at hk
+    change c.size_up_to i + k = (j : ℕ) at hk
     rw [← hk]
     simp [size_up_to_succ', k.is_lt]
   · intro h
@@ -492,7 +492,7 @@ theorem mem_range_embedding (j : Fin n) : j ∈ Set.range (c.Embedding (c.index
   by
   have : c.embedding (c.index j) (c.inv_embedding j) ∈ Set.range (c.embedding (c.index j)) :=
     Set.mem_range_self _
-  rwa [c.embedding_comp_inv j] at this 
+  rwa [c.embedding_comp_inv j] at this
 #align composition.mem_range_embedding Composition.mem_range_embedding
 -/
 
@@ -547,7 +547,7 @@ def blocksFinEquiv : (Σ i : Fin c.length, Fin (c.blocksFun i)) ≃ Fin n
 #print Composition.blocksFun_congr /-
 theorem blocksFun_congr {n₁ n₂ : ℕ} (c₁ : Composition n₁) (c₂ : Composition n₂) (i₁ : Fin c₁.length)
     (i₂ : Fin c₂.length) (hn : n₁ = n₂) (hc : c₁.blocks = c₂.blocks) (hi : (i₁ : ℕ) = i₂) :
-    c₁.blocksFun i₁ = c₂.blocksFun i₂ := by cases hn; rw [← Composition.ext_iff] at hc ; cases hc;
+    c₁.blocksFun i₁ = c₂.blocksFun i₂ := by cases hn; rw [← Composition.ext_iff] at hc; cases hc;
   congr; rwa [Fin.ext_iff]
 #align composition.blocks_fun_congr Composition.blocksFun_congr
 -/
@@ -655,9 +655,9 @@ theorem eq_ones_iff_length {c : Composition n} : c = ones n ↔ c.length = n :=
       _ < ∑ i : Fin c.length, c.blocks_fun i :=
         by
         obtain ⟨i, hi, i_blocks⟩ : ∃ i ∈ c.blocks, 1 < i := ne_ones_iff.1 H
-        rw [← of_fn_blocks_fun, mem_of_fn c.blocks_fun, Set.mem_range] at hi 
+        rw [← of_fn_blocks_fun, mem_of_fn c.blocks_fun, Set.mem_range] at hi
         obtain ⟨j : Fin c.length, hj : c.blocks_fun j = i⟩ := hi
-        rw [← hj] at i_blocks 
+        rw [← hj] at i_blocks
         exact Finset.sum_lt_sum (fun i hi => by simp [blocks_fun]) ⟨j, Finset.mem_univ _, i_blocks⟩
       _ = n := c.sum_blocks_fun
 #align composition.eq_ones_iff_length Composition.eq_ones_iff_length
@@ -837,7 +837,7 @@ theorem length_pos_of_mem_splitWrtComposition {l l' : List α} {c : Composition
   by
   have : l'.length ∈ (l.split_wrt_composition c).map List.length :=
     List.mem_map_of_mem List.length h
-  rw [map_length_split_wrt_composition] at this 
+  rw [map_length_split_wrt_composition] at this
   exact c.blocks_pos this
 #align list.length_pos_of_mem_split_wrt_composition List.length_pos_of_mem_splitWrtComposition
 -/
@@ -943,12 +943,12 @@ def compositionAsSetEquiv (n : ℕ) : CompositionAsSet n ≃ Finset (Fin (n - 1)
       · convert hj1; rwa [Fin.ext_iff]
     · simp only [Classical.or_iff_not_imp_left]
       intro i_mem i_ne_zero i_ne_last
-      simp [Fin.ext_iff] at i_ne_zero i_ne_last 
+      simp [Fin.ext_iff] at i_ne_zero i_ne_last
       have A : (1 + (i - 1) : ℕ) = (i : ℕ) := by rw [add_comm];
         exact Nat.succ_pred_eq_of_pos (pos_iff_ne_zero.mpr i_ne_zero)
       refine' ⟨⟨i - 1, _⟩, _, _⟩
       · have : (i : ℕ) < n + 1 := i.2
-        simp [Nat.lt_succ_iff_lt_or_eq, i_ne_last] at this 
+        simp [Nat.lt_succ_iff_lt_or_eq, i_ne_last] at this
         exact Nat.pred_lt_pred i_ne_zero this
       · convert i_mem
         rw [Fin.ext_iff]
@@ -1097,7 +1097,7 @@ theorem blocks_partial_sum {i : ℕ} (h : i < c.boundaries.card) :
   induction' i with i IH; · simp
   have A : i < c.blocks.length :=
     by
-    rw [c.card_boundaries_eq_succ_length] at h 
+    rw [c.card_boundaries_eq_succ_length] at h
     simp [blocks, Nat.lt_of_succ_lt_succ h]
   have B : i < c.boundaries.card := lt_of_lt_of_le A (by simp [blocks, length, Nat.sub_le])
   rw [sum_take_succ _ _ A, IH B]
@@ -1114,7 +1114,7 @@ theorem mem_boundaries_iff_exists_blocks_sum_take_eq {j : Fin (n + 1)} :
   constructor
   · intro hj
     rcases(c.boundaries.order_iso_of_fin rfl).Surjective ⟨j, hj⟩ with ⟨i, hi⟩
-    rw [Subtype.ext_iff, Subtype.coe_mk] at hi 
+    rw [Subtype.ext_iff, Subtype.coe_mk] at hi
     refine' ⟨i.1, i.2, _⟩
     rw [← hi, c.blocks_partial_sum i.2]
     rfl
@@ -1191,7 +1191,7 @@ theorem Composition.toCompositionAsSet_blocks (c : Composition n) :
     convert d.card_boundaries_eq_succ_length
     exact length_of_fn _
   have i_lt' : i < c.boundaries.card := i_lt
-  have i_lt'' : i < c.length + 1 := by rwa [c.card_boundaries_eq_succ_length] at i_lt' 
+  have i_lt'' : i < c.length + 1 := by rwa [c.card_boundaries_eq_succ_length] at i_lt'
   have A :
     d.boundaries.order_emb_of_fin rfl ⟨i, i_lt⟩ =
       c.boundaries.order_emb_of_fin c.card_boundaries_eq_succ_length ⟨i, i_lt''⟩ :=
@@ -1224,7 +1224,7 @@ theorem CompositionAsSet.toComposition_boundaries (c : CompositionAsSet n) :
     simp [Composition.boundary, Composition.sizeUpTo, ← hi]
   · rintro ⟨i, i_lt, hi⟩
     refine' ⟨i, by simp, _⟩
-    rw [c.card_boundaries_eq_succ_length] at i_lt 
+    rw [c.card_boundaries_eq_succ_length] at i_lt
     simp [Composition.boundary, Nat.mod_eq_of_lt i_lt, Composition.sizeUpTo, hi]
 #align composition_as_set.to_composition_boundaries CompositionAsSet.toComposition_boundaries
 -/
Diff
@@ -470,7 +470,20 @@ theorem mem_range_embedding_iff {j : Fin n} {i : Fin c.length} :
 #print Composition.disjoint_range /-
 /-- The embeddings of different blocks of a composition are disjoint. -/
 theorem disjoint_range {i₁ i₂ : Fin c.length} (h : i₁ ≠ i₂) :
-    Disjoint (Set.range (c.Embedding i₁)) (Set.range (c.Embedding i₂)) := by classical
+    Disjoint (Set.range (c.Embedding i₁)) (Set.range (c.Embedding i₂)) := by
+  classical
+  wlog h' : i₁ < i₂
+  · exact (this c h.symm (h.lt_or_lt.resolve_left h')).symm
+  by_contra d
+  obtain ⟨x, hx₁, hx₂⟩ :
+    ∃ x : Fin n, x ∈ Set.range (c.embedding i₁) ∧ x ∈ Set.range (c.embedding i₂) :=
+    Set.not_disjoint_iff.1 d
+  have A : (i₁ : ℕ).succ ≤ i₂ := Nat.succ_le_of_lt h'
+  apply lt_irrefl (x : ℕ)
+  calc
+    (x : ℕ) < c.size_up_to (i₁ : ℕ).succ := (c.mem_range_embedding_iff.1 hx₁).2
+    _ ≤ c.size_up_to (i₂ : ℕ) := (monotone_sum_take _ A)
+    _ ≤ x := (c.mem_range_embedding_iff.1 hx₂).1
 #align composition.disjoint_range Composition.disjoint_range
 -/
 
Diff
@@ -470,20 +470,7 @@ theorem mem_range_embedding_iff {j : Fin n} {i : Fin c.length} :
 #print Composition.disjoint_range /-
 /-- The embeddings of different blocks of a composition are disjoint. -/
 theorem disjoint_range {i₁ i₂ : Fin c.length} (h : i₁ ≠ i₂) :
-    Disjoint (Set.range (c.Embedding i₁)) (Set.range (c.Embedding i₂)) := by
-  classical
-  wlog h' : i₁ < i₂
-  · exact (this c h.symm (h.lt_or_lt.resolve_left h')).symm
-  by_contra d
-  obtain ⟨x, hx₁, hx₂⟩ :
-    ∃ x : Fin n, x ∈ Set.range (c.embedding i₁) ∧ x ∈ Set.range (c.embedding i₂) :=
-    Set.not_disjoint_iff.1 d
-  have A : (i₁ : ℕ).succ ≤ i₂ := Nat.succ_le_of_lt h'
-  apply lt_irrefl (x : ℕ)
-  calc
-    (x : ℕ) < c.size_up_to (i₁ : ℕ).succ := (c.mem_range_embedding_iff.1 hx₁).2
-    _ ≤ c.size_up_to (i₂ : ℕ) := (monotone_sum_take _ A)
-    _ ≤ x := (c.mem_range_embedding_iff.1 hx₂).1
+    Disjoint (Set.range (c.Embedding i₁)) (Set.range (c.Embedding i₂)) := by classical
 #align composition.disjoint_range Composition.disjoint_range
 -/
 
Diff
@@ -407,7 +407,7 @@ theorem sizeUpTo_index_le (j : Fin n) : c.sizeUpTo (c.index j) ≤ j :=
   set i := c.index j with hi
   push_neg at H 
   have i_pos : (0 : ℕ) < i := by
-    by_contra' i_pos
+    by_contra! i_pos
     revert H; simp [nonpos_iff_eq_zero.1 i_pos, c.size_up_to_zero]
   let i₁ := (i : ℕ).pred
   have i₁_lt_i : i₁ < i := Nat.pred_lt (ne_of_gt i_pos)
Diff
@@ -414,7 +414,7 @@ theorem sizeUpTo_index_le (j : Fin n) : c.sizeUpTo (c.index j) ≤ j :=
   have i₁_succ : i₁.succ = i := Nat.succ_pred_eq_of_pos i_pos
   have := Nat.find_min (c.index_exists j.2) i₁_lt_i
   simp [lt_trans i₁_lt_i (c.index j).2, i₁_succ] at this 
-  exact Nat.lt_le_antisymm H this
+  exact Nat.lt_le_asymm H this
 #align composition.size_up_to_index_le Composition.sizeUpTo_index_le
 -/
 
Diff
@@ -941,7 +941,7 @@ def compositionAsSetEquiv (n : ℕ) : CompositionAsSet n ≃ Finset (Fin (n - 1)
       · exact c.zero_mem
       · exact c.last_mem
       · convert hj1; rwa [Fin.ext_iff]
-    · simp only [or_iff_not_imp_left]
+    · simp only [Classical.or_iff_not_imp_left]
       intro i_mem i_ne_zero i_ne_last
       simp [Fin.ext_iff] at i_ne_zero i_ne_last 
       have A : (1 + (i - 1) : ℕ) = (i : ℕ) := by rw [add_comm];
Diff
@@ -849,26 +849,26 @@ theorem sum_take_map_length_splitWrtComposition (l : List α) (c : Composition l
 #align list.sum_take_map_length_split_wrt_composition List.sum_take_map_length_splitWrtComposition
 -/
 
-#print List.nthLe_splitWrtCompositionAux /-
-theorem nthLe_splitWrtCompositionAux (l : List α) (ns : List ℕ) {i : ℕ} (hi) :
+#print List.get_splitWrtCompositionAux /-
+theorem get_splitWrtCompositionAux (l : List α) (ns : List ℕ) {i : ℕ} (hi) :
     nthLe (l.splitWrtCompositionAux ns) i hi =
       (l.take (ns.take (i + 1)).Sum).drop (ns.take i).Sum :=
   by
   induction' ns with n ns IH generalizing l i; · cases hi
   cases i <;> simp [IH]
   rw [add_comm n, drop_add, drop_take]
-#align list.nth_le_split_wrt_composition_aux List.nthLe_splitWrtCompositionAux
+#align list.nth_le_split_wrt_composition_aux List.get_splitWrtCompositionAux
 -/
 
-#print List.nthLe_splitWrtComposition /-
+#print List.get_splitWrtComposition' /-
 /-- The `i`-th sublist in the splitting of a list `l` along a composition `c`, is the slice of `l`
 between the indices `c.size_up_to i` and `c.size_up_to (i+1)`, i.e., the indices in the `i`-th
 block of the composition. -/
-theorem nthLe_splitWrtComposition (l : List α) (c : Composition n) {i : ℕ}
+theorem get_splitWrtComposition' (l : List α) (c : Composition n) {i : ℕ}
     (hi : i < (l.splitWrtComposition c).length) :
     nthLe (l.splitWrtComposition c) i hi = (l.take (c.sizeUpTo (i + 1))).drop (c.sizeUpTo i) :=
-  nthLe_splitWrtCompositionAux _ _ _
-#align list.nth_le_split_wrt_composition List.nthLe_splitWrtComposition
+  get_splitWrtCompositionAux _ _ _
+#align list.nth_le_split_wrt_composition List.get_splitWrtComposition'
 -/
 
 #print List.join_splitWrtCompositionAux /-
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2020 Sébastien Gouëzel. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Sébastien Gouëzel
 -/
-import Mathbin.Data.Finset.Sort
-import Mathbin.Algebra.BigOperators.Order
-import Mathbin.Algebra.BigOperators.Fin
+import Data.Finset.Sort
+import Algebra.BigOperators.Order
+import Algebra.BigOperators.Fin
 
 #align_import combinatorics.composition from "leanprover-community/mathlib"@"ac34df03f74e6f797efd6991df2e3b7f7d8d33e0"
 
Diff
@@ -1048,7 +1048,7 @@ def boundary : Fin c.boundaries.card ↪o Fin (n + 1) :=
 theorem boundary_zero : (c.boundary ⟨0, c.card_boundaries_pos⟩ : Fin (n + 1)) = 0 :=
   by
   rw [boundary, Finset.orderEmbOfFin_zero rfl c.card_boundaries_pos]
-  exact le_antisymm (Finset.min'_le _ _ c.zero_mem) (Fin.zero_le _)
+  exact le_antisymm (Finset.min'_le _ _ c.zero_mem) (Fin.zero_le' _)
 #align composition_as_set.boundary_zero CompositionAsSet.boundary_zero
 -/
 
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2020 Sébastien Gouëzel. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Sébastien Gouëzel
-
-! This file was ported from Lean 3 source module combinatorics.composition
-! leanprover-community/mathlib commit ac34df03f74e6f797efd6991df2e3b7f7d8d33e0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Data.Finset.Sort
 import Mathbin.Algebra.BigOperators.Order
 import Mathbin.Algebra.BigOperators.Fin
 
+#align_import combinatorics.composition from "leanprover-community/mathlib"@"ac34df03f74e6f797efd6991df2e3b7f7d8d33e0"
+
 /-!
 # Compositions
 
Diff
@@ -358,8 +358,8 @@ theorem orderEmbOfFin_boundaries :
 /-- Embedding the `i`-th block of a composition (identified with `fin (c.blocks_fun i)`) into
 `fin n` at the relevant position. -/
 def embedding (i : Fin c.length) : Fin (c.blocksFun i) ↪o Fin n :=
-  (Fin.natAdd <| c.sizeUpTo i).trans <|
-    Fin.castLE <|
+  (Fin.natAddEmb <| c.sizeUpTo i).trans <|
+    Fin.castLEEmb <|
       calc
         c.sizeUpTo i + c.blocksFun i = c.sizeUpTo (i + 1) := (c.sizeUpTo_succ _).symm
         _ ≤ c.sizeUpTo c.length := (monotone_sum_take _ i.2)
Diff
@@ -289,6 +289,7 @@ theorem monotone_sizeUpTo : Monotone c.sizeUpTo :=
 #align composition.monotone_size_up_to Composition.monotone_sizeUpTo
 -/
 
+#print Composition.boundary /-
 /-- The `i`-th boundary of a composition, i.e., the leftmost point of the `i`-th block. We include
 a virtual point at the right of the last block, to make for a nice equiv with
 `composition_as_set n`. -/
@@ -296,15 +297,20 @@ def boundary : Fin (c.length + 1) ↪o Fin (n + 1) :=
   (OrderEmbedding.ofStrictMono fun i => ⟨c.sizeUpTo i, Nat.lt_succ_of_le (c.sizeUpTo_le i)⟩) <|
     Fin.strictMono_iff_lt_succ.2 fun ⟨i, hi⟩ => c.sizeUpTo_strict_mono hi
 #align composition.boundary Composition.boundary
+-/
 
+#print Composition.boundary_zero /-
 @[simp]
 theorem boundary_zero : c.boundary 0 = 0 := by simp [boundary, Fin.ext_iff]
 #align composition.boundary_zero Composition.boundary_zero
+-/
 
+#print Composition.boundary_last /-
 @[simp]
 theorem boundary_last : c.boundary (Fin.last c.length) = Fin.last n := by
   simp [boundary, Fin.ext_iff]
 #align composition.boundary_last Composition.boundary_last
+-/
 
 #print Composition.boundaries /-
 /-- The boundaries of a composition, i.e., the leftmost point of all the blocks. We include
@@ -337,6 +343,7 @@ def toCompositionAsSet : CompositionAsSet n
 #align composition.to_composition_as_set Composition.toCompositionAsSet
 -/
 
+#print Composition.orderEmbOfFin_boundaries /-
 /-- The canonical increasing bijection between `fin (c.length + 1)` and `c.boundaries` is
 exactly `c.boundary`. -/
 theorem orderEmbOfFin_boundaries :
@@ -345,6 +352,7 @@ theorem orderEmbOfFin_boundaries :
   refine' (Finset.orderEmbOfFin_unique' _ _).symm
   exact fun i => (Finset.mem_map' _).2 (Finset.mem_univ _)
 #align composition.order_emb_of_fin_boundaries Composition.orderEmbOfFin_boundaries
+-/
 
 #print Composition.embedding /-
 /-- Embedding the `i`-th block of a composition (identified with `fin (c.blocks_fun i)`) into
@@ -359,11 +367,13 @@ def embedding (i : Fin c.length) : Fin (c.blocksFun i) ↪o Fin n :=
 #align composition.embedding Composition.embedding
 -/
 
+#print Composition.coe_embedding /-
 @[simp]
 theorem coe_embedding (i : Fin c.length) (j : Fin (c.blocksFun i)) :
     (c.Embedding i j : ℕ) = c.sizeUpTo i + j :=
   rfl
 #align composition.coe_embedding Composition.coe_embedding
+-/
 
 #print Composition.index_exists /-
 /-- `index_exists` asserts there is some `i` with `j < c.size_up_to (i+1)`.
@@ -430,12 +440,15 @@ theorem coe_invEmbedding (j : Fin n) : (c.invEmbedding j : ℕ) = j - c.sizeUpTo
 #align composition.coe_inv_embedding Composition.coe_invEmbedding
 -/
 
+#print Composition.embedding_comp_inv /-
 theorem embedding_comp_inv (j : Fin n) : c.Embedding (c.index j) (c.invEmbedding j) = j :=
   by
   rw [Fin.ext_iff]
   apply add_tsub_cancel_of_le (c.size_up_to_index_le j)
 #align composition.embedding_comp_inv Composition.embedding_comp_inv
+-/
 
+#print Composition.mem_range_embedding_iff /-
 theorem mem_range_embedding_iff {j : Fin n} {i : Fin c.length} :
     j ∈ Set.range (c.Embedding i) ↔ c.sizeUpTo i ≤ j ∧ (j : ℕ) < c.sizeUpTo (i : ℕ).succ :=
   by
@@ -455,7 +468,9 @@ theorem mem_range_embedding_iff {j : Fin n} {i : Fin c.length} :
     · rw [Fin.ext_iff]
       exact add_tsub_cancel_of_le h.1
 #align composition.mem_range_embedding_iff Composition.mem_range_embedding_iff
+-/
 
+#print Composition.disjoint_range /-
 /-- The embeddings of different blocks of a composition are disjoint. -/
 theorem disjoint_range {i₁ i₂ : Fin c.length} (h : i₁ ≠ i₂) :
     Disjoint (Set.range (c.Embedding i₁)) (Set.range (c.Embedding i₂)) := by
@@ -473,14 +488,18 @@ theorem disjoint_range {i₁ i₂ : Fin c.length} (h : i₁ ≠ i₂) :
     _ ≤ c.size_up_to (i₂ : ℕ) := (monotone_sum_take _ A)
     _ ≤ x := (c.mem_range_embedding_iff.1 hx₂).1
 #align composition.disjoint_range Composition.disjoint_range
+-/
 
+#print Composition.mem_range_embedding /-
 theorem mem_range_embedding (j : Fin n) : j ∈ Set.range (c.Embedding (c.index j)) :=
   by
   have : c.embedding (c.index j) (c.inv_embedding j) ∈ Set.range (c.embedding (c.index j)) :=
     Set.mem_range_self _
   rwa [c.embedding_comp_inv j] at this 
 #align composition.mem_range_embedding Composition.mem_range_embedding
+-/
 
+#print Composition.mem_range_embedding_iff' /-
 theorem mem_range_embedding_iff' {j : Fin n} {i : Fin c.length} :
     j ∈ Set.range (c.Embedding i) ↔ i = c.index j :=
   by
@@ -492,18 +511,23 @@ theorem mem_range_embedding_iff' {j : Fin n} {i : Fin c.length} :
     rw [h]
     exact c.mem_range_embedding j
 #align composition.mem_range_embedding_iff' Composition.mem_range_embedding_iff'
+-/
 
+#print Composition.index_embedding /-
 theorem index_embedding (i : Fin c.length) (j : Fin (c.blocksFun i)) :
     c.index (c.Embedding i j) = i := by
   symm
   rw [← mem_range_embedding_iff']
   apply Set.mem_range_self
 #align composition.index_embedding Composition.index_embedding
+-/
 
+#print Composition.invEmbedding_comp /-
 theorem invEmbedding_comp (i : Fin c.length) (j : Fin (c.blocksFun i)) :
     (c.invEmbedding (c.Embedding i j) : ℕ) = j := by
   simp_rw [coe_inv_embedding, index_embedding, coe_embedding, add_tsub_cancel_left]
 #align composition.inv_embedding_comp Composition.invEmbedding_comp
+-/
 
 #print Composition.blocksFinEquiv /-
 /-- Equivalence between the disjoint union of the blocks (each of them seen as
@@ -582,16 +606,20 @@ theorem ones_blocksFun (n : ℕ) (i : Fin (ones n).length) : (ones n).blocksFun
 #align composition.ones_blocks_fun Composition.ones_blocksFun
 -/
 
+#print Composition.ones_sizeUpTo /-
 @[simp]
 theorem ones_sizeUpTo (n : ℕ) (i : ℕ) : (ones n).sizeUpTo i = min i n := by
   simp [size_up_to, ones_blocks, take_replicate]
 #align composition.ones_size_up_to Composition.ones_sizeUpTo
+-/
 
+#print Composition.ones_embedding /-
 @[simp]
 theorem ones_embedding (i : Fin (ones n).length) (h : 0 < (ones n).blocksFun i) :
     (ones n).Embedding i ⟨0, h⟩ = ⟨i, lt_of_lt_of_le i.2 (ones n).length_le⟩ := by ext;
   simpa using i.2.le
 #align composition.ones_embedding Composition.ones_embedding
+-/
 
 #print Composition.eq_ones_iff /-
 theorem eq_ones_iff {c : Composition n} : c = ones n ↔ ∀ i ∈ c.blocks, i = 1 :=
@@ -607,12 +635,14 @@ theorem eq_ones_iff {c : Composition n} : c = ones n ↔ ∀ i ∈ c.blocks, i =
 #align composition.eq_ones_iff Composition.eq_ones_iff
 -/
 
+#print Composition.ne_ones_iff /-
 theorem ne_ones_iff {c : Composition n} : c ≠ ones n ↔ ∃ i ∈ c.blocks, 1 < i :=
   by
   refine' (not_congr eq_ones_iff).trans _
   have : ∀ j ∈ c.blocks, j = 1 ↔ j ≤ 1 := fun j hj => by simp [le_antisymm_iff, c.one_le_blocks hj]
   simp (config := { contextual := true }) [this]
 #align composition.ne_ones_iff Composition.ne_ones_iff
+-/
 
 #print Composition.eq_ones_iff_length /-
 theorem eq_ones_iff_length {c : Composition n} : c = ones n ↔ c.length = n :=
@@ -673,10 +703,12 @@ theorem single_blocksFun {n : ℕ} (h : 0 < n) (i : Fin (single n h).length) :
 #align composition.single_blocks_fun Composition.single_blocksFun
 -/
 
+#print Composition.single_embedding /-
 @[simp]
 theorem single_embedding {n : ℕ} (h : 0 < n) (i : Fin n) :
     (single n h).Embedding ⟨0, single_length h ▸ zero_lt_one⟩ i = i := by ext; simp
 #align composition.single_embedding Composition.single_embedding
+-/
 
 #print Composition.eq_single_iff_length /-
 theorem eq_single_iff_length {n : ℕ} (h : 0 < n) {c : Composition n} :
@@ -1007,24 +1039,30 @@ theorem lt_length' (i : Fin c.length) : (i : ℕ) < c.boundaries.card :=
 #align composition_as_set.lt_length' CompositionAsSet.lt_length'
 -/
 
+#print CompositionAsSet.boundary /-
 /-- Canonical increasing bijection from `fin c.boundaries.card` to `c.boundaries`. -/
 def boundary : Fin c.boundaries.card ↪o Fin (n + 1) :=
   c.boundaries.orderEmbOfFin rfl
 #align composition_as_set.boundary CompositionAsSet.boundary
+-/
 
+#print CompositionAsSet.boundary_zero /-
 @[simp]
 theorem boundary_zero : (c.boundary ⟨0, c.card_boundaries_pos⟩ : Fin (n + 1)) = 0 :=
   by
   rw [boundary, Finset.orderEmbOfFin_zero rfl c.card_boundaries_pos]
   exact le_antisymm (Finset.min'_le _ _ c.zero_mem) (Fin.zero_le _)
 #align composition_as_set.boundary_zero CompositionAsSet.boundary_zero
+-/
 
+#print CompositionAsSet.boundary_length /-
 @[simp]
 theorem boundary_length : c.boundary ⟨c.length, c.length_lt_card_boundaries⟩ = Fin.last n :=
   by
   convert Finset.orderEmbOfFin_last rfl c.card_boundaries_pos
   exact le_antisymm (Finset.le_max' _ _ c.last_mem) (Fin.le_last _)
 #align composition_as_set.boundary_length CompositionAsSet.boundary_length
+-/
 
 #print CompositionAsSet.blocksFun /-
 /-- Size of the `i`-th block in a `composition_as_set`, seen as a function on `fin c.length`. -/
@@ -1055,6 +1093,7 @@ theorem blocks_length : c.blocks.length = c.length :=
 #align composition_as_set.blocks_length CompositionAsSet.blocks_length
 -/
 
+#print CompositionAsSet.blocks_partial_sum /-
 theorem blocks_partial_sum {i : ℕ} (h : i < c.boundaries.card) :
     (c.blocks.take i).Sum = c.boundary ⟨i, h⟩ :=
   by
@@ -1069,7 +1108,9 @@ theorem blocks_partial_sum {i : ℕ} (h : i < c.boundaries.card) :
   apply add_tsub_cancel_of_le
   simp
 #align composition_as_set.blocks_partial_sum CompositionAsSet.blocks_partial_sum
+-/
 
+#print CompositionAsSet.mem_boundaries_iff_exists_blocks_sum_take_eq /-
 theorem mem_boundaries_iff_exists_blocks_sum_take_eq {j : Fin (n + 1)} :
     j ∈ c.boundaries ↔ ∃ i < c.boundaries.card, (c.blocks.take i).Sum = j :=
   by
@@ -1085,6 +1126,7 @@ theorem mem_boundaries_iff_exists_blocks_sum_take_eq {j : Fin (n + 1)} :
     have : c.boundary ⟨i, hi⟩ = j := by rwa [Fin.ext_iff, ← c.blocks_partial_sum hi]
     exact this.symm
 #align composition_as_set.mem_boundaries_iff_exists_blocks_sum_take_eq CompositionAsSet.mem_boundaries_iff_exists_blocks_sum_take_eq
+-/
 
 #print CompositionAsSet.blocks_sum /-
 theorem blocks_sum : c.blocks.Sum = n :=
Diff
@@ -171,7 +171,7 @@ theorem ofFn_blocksFun : ofFn c.blocksFun = c.blocks :=
 -/
 
 #print Composition.sum_blocksFun /-
-theorem sum_blocksFun : (∑ i, c.blocksFun i) = n := by
+theorem sum_blocksFun : ∑ i, c.blocksFun i = n := by
   conv_rhs => rw [← c.blocks_sum, ← of_fn_blocks_fun, sum_of_fn]
 #align composition.sum_blocks_fun Composition.sum_blocksFun
 -/
@@ -710,7 +710,7 @@ theorem ne_single_iff {n : ℕ} (hn : 0 < n) {c : Composition n} :
       by_contra ji
       apply lt_irrefl (∑ k, c.blocks_fun k)
       calc
-        (∑ k, c.blocks_fun k) ≤ c.blocks_fun i := by simp only [c.sum_blocks_fun, hi]
+        ∑ k, c.blocks_fun k ≤ c.blocks_fun i := by simp only [c.sum_blocks_fun, hi]
         _ < ∑ k, c.blocks_fun k :=
           Finset.single_lt_sum ji (Finset.mem_univ _) (Finset.mem_univ _) (c.one_le_blocks_fun j)
             fun _ _ _ => zero_le _
Diff
@@ -356,7 +356,6 @@ def embedding (i : Fin c.length) : Fin (c.blocksFun i) ↪o Fin n :=
         c.sizeUpTo i + c.blocksFun i = c.sizeUpTo (i + 1) := (c.sizeUpTo_succ _).symm
         _ ≤ c.sizeUpTo c.length := (monotone_sum_take _ i.2)
         _ = n := c.sizeUpTo_length
-        
 #align composition.embedding Composition.embedding
 -/
 
@@ -473,7 +472,6 @@ theorem disjoint_range {i₁ i₂ : Fin c.length} (h : i₁ ≠ i₂) :
     (x : ℕ) < c.size_up_to (i₁ : ℕ).succ := (c.mem_range_embedding_iff.1 hx₁).2
     _ ≤ c.size_up_to (i₂ : ℕ) := (monotone_sum_take _ A)
     _ ≤ x := (c.mem_range_embedding_iff.1 hx₂).1
-    
 #align composition.disjoint_range Composition.disjoint_range
 
 theorem mem_range_embedding (j : Fin n) : j ∈ Set.range (c.Embedding (c.index j)) :=
@@ -635,7 +633,6 @@ theorem eq_ones_iff_length {c : Composition n} : c = ones n ↔ c.length = n :=
         rw [← hj] at i_blocks 
         exact Finset.sum_lt_sum (fun i hi => by simp [blocks_fun]) ⟨j, Finset.mem_univ _, i_blocks⟩
       _ = n := c.sum_blocks_fun
-      
 #align composition.eq_ones_iff_length Composition.eq_ones_iff_length
 -/
 
@@ -717,7 +714,6 @@ theorem ne_single_iff {n : ℕ} (hn : 0 < n) {c : Composition n} :
         _ < ∑ k, c.blocks_fun k :=
           Finset.single_lt_sum ji (Finset.mem_univ _) (Finset.mem_univ _) (c.one_le_blocks_fun j)
             fun _ _ _ => zero_le _
-        
     simpa using Fintype.card_eq_one_of_forall_eq this
 #align composition.ne_single_iff Composition.ne_single_iff
 -/
Diff
@@ -399,7 +399,7 @@ theorem sizeUpTo_index_le (j : Fin n) : c.sizeUpTo (c.index j) ≤ j :=
   by
   by_contra H
   set i := c.index j with hi
-  push_neg  at H 
+  push_neg at H 
   have i_pos : (0 : ℕ) < i := by
     by_contra' i_pos
     revert H; simp [nonpos_iff_eq_zero.1 i_pos, c.size_up_to_zero]
@@ -461,19 +461,19 @@ theorem mem_range_embedding_iff {j : Fin n} {i : Fin c.length} :
 theorem disjoint_range {i₁ i₂ : Fin c.length} (h : i₁ ≠ i₂) :
     Disjoint (Set.range (c.Embedding i₁)) (Set.range (c.Embedding i₂)) := by
   classical
-    wlog h' : i₁ < i₂
-    · exact (this c h.symm (h.lt_or_lt.resolve_left h')).symm
-    by_contra d
-    obtain ⟨x, hx₁, hx₂⟩ :
-      ∃ x : Fin n, x ∈ Set.range (c.embedding i₁) ∧ x ∈ Set.range (c.embedding i₂) :=
-      Set.not_disjoint_iff.1 d
-    have A : (i₁ : ℕ).succ ≤ i₂ := Nat.succ_le_of_lt h'
-    apply lt_irrefl (x : ℕ)
-    calc
-      (x : ℕ) < c.size_up_to (i₁ : ℕ).succ := (c.mem_range_embedding_iff.1 hx₁).2
-      _ ≤ c.size_up_to (i₂ : ℕ) := (monotone_sum_take _ A)
-      _ ≤ x := (c.mem_range_embedding_iff.1 hx₂).1
-      
+  wlog h' : i₁ < i₂
+  · exact (this c h.symm (h.lt_or_lt.resolve_left h')).symm
+  by_contra d
+  obtain ⟨x, hx₁, hx₂⟩ :
+    ∃ x : Fin n, x ∈ Set.range (c.embedding i₁) ∧ x ∈ Set.range (c.embedding i₂) :=
+    Set.not_disjoint_iff.1 d
+  have A : (i₁ : ℕ).succ ≤ i₂ := Nat.succ_le_of_lt h'
+  apply lt_irrefl (x : ℕ)
+  calc
+    (x : ℕ) < c.size_up_to (i₁ : ℕ).succ := (c.mem_range_embedding_iff.1 hx₁).2
+    _ ≤ c.size_up_to (i₂ : ℕ) := (monotone_sum_take _ A)
+    _ ≤ x := (c.mem_range_embedding_iff.1 hx₂).1
+    
 #align composition.disjoint_range Composition.disjoint_range
 
 theorem mem_range_embedding (j : Fin n) : j ∈ Set.range (c.Embedding (c.index j)) :=
@@ -894,17 +894,17 @@ considering the restriction of the subset to `{1, ..., n-1}` and shifting to the
 def compositionAsSetEquiv (n : ℕ) : CompositionAsSet n ≃ Finset (Fin (n - 1))
     where
   toFun c :=
-    { i : Fin (n - 1) |
+    {i : Fin (n - 1) |
         (⟨1 + (i : ℕ), by
               apply (add_lt_add_left i.is_lt 1).trans_le
               rw [Nat.succ_eq_add_one, add_comm]
               exact add_le_add (Nat.sub_le n 1) (le_refl 1)⟩ :
             Fin n.succ) ∈
-          c.boundaries }.toFinset
+          c.boundaries}.toFinset
   invFun s :=
     { boundaries :=
-        { i : Fin n.succ |
-            i = 0 ∨ i = Fin.last n ∨ ∃ (j : Fin (n - 1)) (hj : j ∈ s), (i : ℕ) = j + 1 }.toFinset
+        {i : Fin n.succ |
+            i = 0 ∨ i = Fin.last n ∨ ∃ (j : Fin (n - 1)) (hj : j ∈ s), (i : ℕ) = j + 1}.toFinset
       zero_mem := by simp
       getLast_mem := by simp }
   left_inv := by
@@ -1085,7 +1085,7 @@ theorem mem_boundaries_iff_exists_blocks_sum_take_eq {j : Fin (n + 1)} :
     rw [← hi, c.blocks_partial_sum i.2]
     rfl
   · rintro ⟨i, hi, H⟩
-    convert(c.boundaries.order_iso_of_fin rfl ⟨i, hi⟩).2
+    convert (c.boundaries.order_iso_of_fin rfl ⟨i, hi⟩).2
     have : c.boundary ⟨i, hi⟩ = j := by rwa [Fin.ext_iff, ← c.blocks_partial_sum hi]
     exact this.symm
 #align composition_as_set.mem_boundaries_iff_exists_blocks_sum_take_eq CompositionAsSet.mem_boundaries_iff_exists_blocks_sum_take_eq
Diff
@@ -373,7 +373,7 @@ In the next definition `index` we use `nat.find` to produce the minimal such ind
 theorem index_exists {j : ℕ} (h : j < n) : ∃ i : ℕ, j < c.sizeUpTo i.succ ∧ i < c.length :=
   by
   have n_pos : 0 < n := lt_of_le_of_lt (zero_le j) h
-  have : 0 < c.blocks.sum := by rwa [← c.blocks_sum] at n_pos
+  have : 0 < c.blocks.sum := by rwa [← c.blocks_sum] at n_pos 
   have length_pos : 0 < c.blocks.length := length_pos_of_sum_pos (blocks c) this
   refine' ⟨c.length.pred, _, Nat.pred_lt (ne_of_gt length_pos)⟩
   have : c.length.pred.succ = c.length := Nat.succ_pred_eq_of_pos length_pos
@@ -399,7 +399,7 @@ theorem sizeUpTo_index_le (j : Fin n) : c.sizeUpTo (c.index j) ≤ j :=
   by
   by_contra H
   set i := c.index j with hi
-  push_neg  at H
+  push_neg  at H 
   have i_pos : (0 : ℕ) < i := by
     by_contra' i_pos
     revert H; simp [nonpos_iff_eq_zero.1 i_pos, c.size_up_to_zero]
@@ -407,7 +407,7 @@ theorem sizeUpTo_index_le (j : Fin n) : c.sizeUpTo (c.index j) ≤ j :=
   have i₁_lt_i : i₁ < i := Nat.pred_lt (ne_of_gt i_pos)
   have i₁_succ : i₁.succ = i := Nat.succ_pred_eq_of_pos i_pos
   have := Nat.find_min (c.index_exists j.2) i₁_lt_i
-  simp [lt_trans i₁_lt_i (c.index j).2, i₁_succ] at this
+  simp [lt_trans i₁_lt_i (c.index j).2, i₁_succ] at this 
   exact Nat.lt_le_antisymm H this
 #align composition.size_up_to_index_le Composition.sizeUpTo_index_le
 -/
@@ -443,8 +443,8 @@ theorem mem_range_embedding_iff {j : Fin n} {i : Fin c.length} :
   constructor
   · intro h
     rcases Set.mem_range.2 h with ⟨k, hk⟩
-    rw [Fin.ext_iff] at hk
-    change c.size_up_to i + k = (j : ℕ) at hk
+    rw [Fin.ext_iff] at hk 
+    change c.size_up_to i + k = (j : ℕ) at hk 
     rw [← hk]
     simp [size_up_to_succ', k.is_lt]
   · intro h
@@ -480,7 +480,7 @@ theorem mem_range_embedding (j : Fin n) : j ∈ Set.range (c.Embedding (c.index
   by
   have : c.embedding (c.index j) (c.inv_embedding j) ∈ Set.range (c.embedding (c.index j)) :=
     Set.mem_range_self _
-  rwa [c.embedding_comp_inv j] at this
+  rwa [c.embedding_comp_inv j] at this 
 #align composition.mem_range_embedding Composition.mem_range_embedding
 
 theorem mem_range_embedding_iff' {j : Fin n} {i : Fin c.length} :
@@ -510,14 +510,14 @@ theorem invEmbedding_comp (i : Fin c.length) (j : Fin (c.blocksFun i)) :
 #print Composition.blocksFinEquiv /-
 /-- Equivalence between the disjoint union of the blocks (each of them seen as
 `fin (c.blocks_fun i)`) with `fin n`. -/
-def blocksFinEquiv : (Σi : Fin c.length, Fin (c.blocksFun i)) ≃ Fin n
+def blocksFinEquiv : (Σ i : Fin c.length, Fin (c.blocksFun i)) ≃ Fin n
     where
   toFun x := c.Embedding x.1 x.2
   invFun j := ⟨c.index j, c.invEmbedding j⟩
   left_inv x := by
     rcases x with ⟨i, y⟩
     dsimp
-    congr ; · exact c.index_embedding _ _
+    congr; · exact c.index_embedding _ _
     rw [Fin.heq_ext_iff]
     · exact c.inv_embedding_comp _ _
     · rw [c.index_embedding]
@@ -528,15 +528,15 @@ def blocksFinEquiv : (Σi : Fin c.length, Fin (c.blocksFun i)) ≃ Fin n
 #print Composition.blocksFun_congr /-
 theorem blocksFun_congr {n₁ n₂ : ℕ} (c₁ : Composition n₁) (c₂ : Composition n₂) (i₁ : Fin c₁.length)
     (i₂ : Fin c₂.length) (hn : n₁ = n₂) (hc : c₁.blocks = c₂.blocks) (hi : (i₁ : ℕ) = i₂) :
-    c₁.blocksFun i₁ = c₂.blocksFun i₂ := by cases hn; rw [← Composition.ext_iff] at hc; cases hc;
-  congr ; rwa [Fin.ext_iff]
+    c₁.blocksFun i₁ = c₂.blocksFun i₂ := by cases hn; rw [← Composition.ext_iff] at hc ; cases hc;
+  congr; rwa [Fin.ext_iff]
 #align composition.blocks_fun_congr Composition.blocksFun_congr
 -/
 
 #print Composition.sigma_eq_iff_blocks_eq /-
 /-- Two compositions (possibly of different integers) coincide if and only if they have the
 same sequence of blocks. -/
-theorem sigma_eq_iff_blocks_eq {c : Σn, Composition n} {c' : Σn, Composition n} :
+theorem sigma_eq_iff_blocks_eq {c : Σ n, Composition n} {c' : Σ n, Composition n} :
     c = c' ↔ c.2.blocks = c'.2.blocks :=
   by
   refine' ⟨fun H => by rw [H], fun H => _⟩
@@ -630,9 +630,9 @@ theorem eq_ones_iff_length {c : Composition n} : c = ones n ↔ c.length = n :=
       _ < ∑ i : Fin c.length, c.blocks_fun i :=
         by
         obtain ⟨i, hi, i_blocks⟩ : ∃ i ∈ c.blocks, 1 < i := ne_ones_iff.1 H
-        rw [← of_fn_blocks_fun, mem_of_fn c.blocks_fun, Set.mem_range] at hi
+        rw [← of_fn_blocks_fun, mem_of_fn c.blocks_fun, Set.mem_range] at hi 
         obtain ⟨j : Fin c.length, hj : c.blocks_fun j = i⟩ := hi
-        rw [← hj] at i_blocks
+        rw [← hj] at i_blocks 
         exact Finset.sum_lt_sum (fun i hi => by simp [blocks_fun]) ⟨j, Finset.mem_univ _, i_blocks⟩
       _ = n := c.sum_blocks_fun
       
@@ -692,7 +692,7 @@ theorem eq_single_iff_length {n : ℕ} (h : 0 < n) {c : Composition n} :
     ext1
     have A : c.blocks.length = 1 := H ▸ c.blocks_length
     have B : c.blocks.sum = n := c.blocks_sum
-    rw [eq_cons_of_length_one A] at B⊢
+    rw [eq_cons_of_length_one A] at B ⊢
     simpa [single_blocks] using B
 #align composition.eq_single_iff_length Composition.eq_single_iff_length
 -/
@@ -790,7 +790,7 @@ theorem length_splitWrtComposition (l : List α) (c : Composition n) :
 theorem map_length_splitWrtCompositionAux {ns : List ℕ} :
     ∀ {l : List α}, ns.Sum ≤ l.length → map length (l.splitWrtCompositionAux ns) = ns :=
   by
-  induction' ns with n ns IH <;> intro l h <;> simp at h⊢
+  induction' ns with n ns IH <;> intro l h <;> simp at h ⊢
   have := le_trans (Nat.le_add_right _ _) h
   rw [IH]; · simp [this]
   rwa [length_drop, le_tsub_iff_left this]
@@ -812,14 +812,14 @@ theorem length_pos_of_mem_splitWrtComposition {l l' : List α} {c : Composition
   by
   have : l'.length ∈ (l.split_wrt_composition c).map List.length :=
     List.mem_map_of_mem List.length h
-  rw [map_length_split_wrt_composition] at this
+  rw [map_length_split_wrt_composition] at this 
   exact c.blocks_pos this
 #align list.length_pos_of_mem_split_wrt_composition List.length_pos_of_mem_splitWrtComposition
 -/
 
 #print List.sum_take_map_length_splitWrtComposition /-
 theorem sum_take_map_length_splitWrtComposition (l : List α) (c : Composition l.length) (i : ℕ) :
-    (((l.splitWrtComposition c).map length).take i).Sum = c.sizeUpTo i := by congr ;
+    (((l.splitWrtComposition c).map length).take i).Sum = c.sizeUpTo i := by congr;
   exact map_length_split_wrt_composition l c
 #align list.sum_take_map_length_split_wrt_composition List.sum_take_map_length_splitWrtComposition
 -/
@@ -850,7 +850,7 @@ theorem nthLe_splitWrtComposition (l : List α) (c : Composition n) {i : ℕ}
 theorem join_splitWrtCompositionAux {ns : List ℕ} :
     ∀ {l : List α}, ns.Sum = l.length → (l.splitWrtCompositionAux ns).join = l :=
   by
-  induction' ns with n ns IH <;> intro l h <;> simp at h⊢
+  induction' ns with n ns IH <;> intro l h <;> simp at h ⊢
   · exact (length_eq_zero.1 h.symm).symm
   rw [IH]; · simp
   rwa [length_drop, ← h, add_tsub_cancel_left]
@@ -904,7 +904,7 @@ def compositionAsSetEquiv (n : ℕ) : CompositionAsSet n ≃ Finset (Fin (n - 1)
   invFun s :=
     { boundaries :=
         { i : Fin n.succ |
-            i = 0 ∨ i = Fin.last n ∨ ∃ (j : Fin (n - 1))(hj : j ∈ s), (i : ℕ) = j + 1 }.toFinset
+            i = 0 ∨ i = Fin.last n ∨ ∃ (j : Fin (n - 1)) (hj : j ∈ s), (i : ℕ) = j + 1 }.toFinset
       zero_mem := by simp
       getLast_mem := by simp }
   left_inv := by
@@ -918,12 +918,12 @@ def compositionAsSetEquiv (n : ℕ) : CompositionAsSet n ≃ Finset (Fin (n - 1)
       · convert hj1; rwa [Fin.ext_iff]
     · simp only [or_iff_not_imp_left]
       intro i_mem i_ne_zero i_ne_last
-      simp [Fin.ext_iff] at i_ne_zero i_ne_last
+      simp [Fin.ext_iff] at i_ne_zero i_ne_last 
       have A : (1 + (i - 1) : ℕ) = (i : ℕ) := by rw [add_comm];
         exact Nat.succ_pred_eq_of_pos (pos_iff_ne_zero.mpr i_ne_zero)
       refine' ⟨⟨i - 1, _⟩, _, _⟩
       · have : (i : ℕ) < n + 1 := i.2
-        simp [Nat.lt_succ_iff_lt_or_eq, i_ne_last] at this
+        simp [Nat.lt_succ_iff_lt_or_eq, i_ne_last] at this 
         exact Nat.pred_lt_pred i_ne_zero this
       · convert i_mem
         rw [Fin.ext_iff]
@@ -1065,7 +1065,7 @@ theorem blocks_partial_sum {i : ℕ} (h : i < c.boundaries.card) :
   induction' i with i IH; · simp
   have A : i < c.blocks.length :=
     by
-    rw [c.card_boundaries_eq_succ_length] at h
+    rw [c.card_boundaries_eq_succ_length] at h 
     simp [blocks, Nat.lt_of_succ_lt_succ h]
   have B : i < c.boundaries.card := lt_of_lt_of_le A (by simp [blocks, length, Nat.sub_le])
   rw [sum_take_succ _ _ A, IH B]
@@ -1080,7 +1080,7 @@ theorem mem_boundaries_iff_exists_blocks_sum_take_eq {j : Fin (n + 1)} :
   constructor
   · intro hj
     rcases(c.boundaries.order_iso_of_fin rfl).Surjective ⟨j, hj⟩ with ⟨i, hi⟩
-    rw [Subtype.ext_iff, Subtype.coe_mk] at hi
+    rw [Subtype.ext_iff, Subtype.coe_mk] at hi 
     refine' ⟨i.1, i.2, _⟩
     rw [← hi, c.blocks_partial_sum i.2]
     rfl
@@ -1156,7 +1156,7 @@ theorem Composition.toCompositionAsSet_blocks (c : Composition n) :
     convert d.card_boundaries_eq_succ_length
     exact length_of_fn _
   have i_lt' : i < c.boundaries.card := i_lt
-  have i_lt'' : i < c.length + 1 := by rwa [c.card_boundaries_eq_succ_length] at i_lt'
+  have i_lt'' : i < c.length + 1 := by rwa [c.card_boundaries_eq_succ_length] at i_lt' 
   have A :
     d.boundaries.order_emb_of_fin rfl ⟨i, i_lt⟩ =
       c.boundaries.order_emb_of_fin c.card_boundaries_eq_succ_length ⟨i, i_lt''⟩ :=
@@ -1189,7 +1189,7 @@ theorem CompositionAsSet.toComposition_boundaries (c : CompositionAsSet n) :
     simp [Composition.boundary, Composition.sizeUpTo, ← hi]
   · rintro ⟨i, i_lt, hi⟩
     refine' ⟨i, by simp, _⟩
-    rw [c.card_boundaries_eq_succ_length] at i_lt
+    rw [c.card_boundaries_eq_succ_length] at i_lt 
     simp [Composition.boundary, Nat.mod_eq_of_lt i_lt, Composition.sizeUpTo, hi]
 #align composition_as_set.to_composition_boundaries CompositionAsSet.toComposition_boundaries
 -/
Diff
@@ -97,7 +97,7 @@ Composition, partition
 
 open List
 
-open BigOperators
+open scoped BigOperators
 
 variable {n : ℕ}
 
Diff
@@ -289,12 +289,6 @@ theorem monotone_sizeUpTo : Monotone c.sizeUpTo :=
 #align composition.monotone_size_up_to Composition.monotone_sizeUpTo
 -/
 
-/- warning: composition.boundary -> Composition.boundary is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (c : Composition n), OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))
-but is expected to have type
-  forall {n : Nat} (c : Composition n), OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
-Case conversion may be inaccurate. Consider using '#align composition.boundary Composition.boundaryₓ'. -/
 /-- The `i`-th boundary of a composition, i.e., the leftmost point of the `i`-th block. We include
 a virtual point at the right of the last block, to make for a nice equiv with
 `composition_as_set n`. -/
@@ -303,16 +297,10 @@ def boundary : Fin (c.length + 1) ↪o Fin (n + 1) :=
     Fin.strictMono_iff_lt_succ.2 fun ⟨i, hi⟩ => c.sizeUpTo_strict_mono hi
 #align composition.boundary Composition.boundary
 
-/- warning: composition.boundary_zero -> Composition.boundary_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align composition.boundary_zero Composition.boundary_zeroₓ'. -/
 @[simp]
 theorem boundary_zero : c.boundary 0 = 0 := by simp [boundary, Fin.ext_iff]
 #align composition.boundary_zero Composition.boundary_zero
 
-/- warning: composition.boundary_last -> Composition.boundary_last is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align composition.boundary_last Composition.boundary_lastₓ'. -/
 @[simp]
 theorem boundary_last : c.boundary (Fin.last c.length) = Fin.last n := by
   simp [boundary, Fin.ext_iff]
@@ -349,12 +337,6 @@ def toCompositionAsSet : CompositionAsSet n
 #align composition.to_composition_as_set Composition.toCompositionAsSet
 -/
 
-/- warning: composition.order_emb_of_fin_boundaries -> Composition.orderEmbOfFin_boundaries is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (c : Composition n), Eq.{1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (Finset.orderEmbOfFin.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Composition.boundaries n c) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (Composition.card_boundaries_eq_succ_length n c)) (Composition.boundary n c)
-but is expected to have type
-  forall {n : Nat} (c : Composition n), Eq.{1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))))))) (Finset.orderEmbOfFin.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Composition.boundaries n c) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Composition.card_boundaries_eq_succ_length n c)) (Composition.boundary n c)
-Case conversion may be inaccurate. Consider using '#align composition.order_emb_of_fin_boundaries Composition.orderEmbOfFin_boundariesₓ'. -/
 /-- The canonical increasing bijection between `fin (c.length + 1)` and `c.boundaries` is
 exactly `c.boundary`. -/
 theorem orderEmbOfFin_boundaries :
@@ -378,12 +360,6 @@ def embedding (i : Fin c.length) : Fin (c.blocksFun i) ↪o Fin n :=
 #align composition.embedding Composition.embedding
 -/
 
-/- warning: composition.coe_embedding -> Composition.coe_embedding is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin n) Nat (HasLiftT.mk.{1, 1} (Fin n) Nat (CoeTCₓ.coe.{1, 1} (Fin n) Nat (coeBase.{1, 1} (Fin n) Nat (Fin.coeToNat n)))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.sizeUpTo n c ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n c)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n c)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n c)) Nat (coeBase.{1, 1} (Fin (Composition.length n c)) Nat (Fin.coeToNat (Composition.length n c))))) i)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.blocksFun n c i)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (coeBase.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (Fin.coeToNat (Composition.blocksFun n c i))))) j))
-but is expected to have type
-  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat (Fin.val n (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c i) j)) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.sizeUpTo n c (Fin.val (Composition.length n c) i)) (Fin.val (Composition.blocksFun n c i) j))
-Case conversion may be inaccurate. Consider using '#align composition.coe_embedding Composition.coe_embeddingₓ'. -/
 @[simp]
 theorem coe_embedding (i : Fin c.length) (j : Fin (c.blocksFun i)) :
     (c.Embedding i j : ℕ) = c.sizeUpTo i + j :=
@@ -455,24 +431,12 @@ theorem coe_invEmbedding (j : Fin n) : (c.invEmbedding j : ℕ) = j - c.sizeUpTo
 #align composition.coe_inv_embedding Composition.coe_invEmbedding
 -/
 
-/- warning: composition.embedding_comp_inv -> Composition.embedding_comp_inv is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (c : Composition n) (j : Fin n), Eq.{1} (Fin n) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j)))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c (Composition.index n c j))) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j)))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c (Composition.index n c j)) (Composition.invEmbedding n c j)) j
-but is expected to have type
-  forall {n : Nat} (c : Composition n) (j : Fin n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) (Composition.invEmbedding n c j)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (fun (_x : Fin (Composition.blocksFun n c (Composition.index n c j))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instDistribLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j)))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instDistribLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j))))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c (Composition.index n c j))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c (Composition.index n c j))) => LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c (Composition.index n c j)) (Composition.invEmbedding n c j)) j
-Case conversion may be inaccurate. Consider using '#align composition.embedding_comp_inv Composition.embedding_comp_invₓ'. -/
 theorem embedding_comp_inv (j : Fin n) : c.Embedding (c.index j) (c.invEmbedding j) = j :=
   by
   rw [Fin.ext_iff]
   apply add_tsub_cancel_of_le (c.size_up_to_index_le j)
 #align composition.embedding_comp_inv Composition.embedding_comp_inv
 
-/- warning: composition.mem_range_embedding_iff -> Composition.mem_range_embedding_iff is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.Mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.hasMem.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i)))) (And (LE.le.{0} Nat Nat.hasLe (Composition.sizeUpTo n c ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n c)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n c)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n c)) Nat (coeBase.{1, 1} (Fin (Composition.length n c)) Nat (Fin.coeToNat (Composition.length n c))))) i)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin n) Nat (HasLiftT.mk.{1, 1} (Fin n) Nat (CoeTCₓ.coe.{1, 1} (Fin n) Nat (coeBase.{1, 1} (Fin n) Nat (Fin.coeToNat n)))) j)) (LT.lt.{0} Nat Nat.hasLt ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin n) Nat (HasLiftT.mk.{1, 1} (Fin n) Nat (CoeTCₓ.coe.{1, 1} (Fin n) Nat (coeBase.{1, 1} (Fin n) Nat (Fin.coeToNat n)))) j) (Composition.sizeUpTo n c (Nat.succ ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n c)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n c)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n c)) Nat (coeBase.{1, 1} (Fin (Composition.length n c)) Nat (Fin.coeToNat (Composition.length n c))))) i)))))
-but is expected to have type
-  forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c i)))) (And (LE.le.{0} Nat instLENat (Composition.sizeUpTo n c (Fin.val (Composition.length n c) i)) (Fin.val n j)) (LT.lt.{0} Nat instLTNat (Fin.val n j) (Composition.sizeUpTo n c (Nat.succ (Fin.val (Composition.length n c) i)))))
-Case conversion may be inaccurate. Consider using '#align composition.mem_range_embedding_iff Composition.mem_range_embedding_iffₓ'. -/
 theorem mem_range_embedding_iff {j : Fin n} {i : Fin c.length} :
     j ∈ Set.range (c.Embedding i) ↔ c.sizeUpTo i ≤ j ∧ (j : ℕ) < c.sizeUpTo (i : ℕ).succ :=
   by
@@ -493,12 +457,6 @@ theorem mem_range_embedding_iff {j : Fin n} {i : Fin c.length} :
       exact add_tsub_cancel_of_le h.1
 #align composition.mem_range_embedding_iff Composition.mem_range_embedding_iff
 
-/- warning: composition.disjoint_range -> Composition.disjoint_range is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (c : Composition n) {i₁ : Fin (Composition.length n c)} {i₂ : Fin (Composition.length n c)}, (Ne.{1} (Fin (Composition.length n c)) i₁ i₂) -> (Disjoint.{0} (Set.{0} (Fin n)) (CompleteSemilatticeInf.toPartialOrder.{0} (Set.{0} (Fin n)) (CompleteLattice.toCompleteSemilatticeInf.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.completeBooleanAlgebra.{0} (Fin n))))))) (GeneralizedBooleanAlgebra.toOrderBot.{0} (Set.{0} (Fin n)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{0} (Set.{0} (Fin n)) (Set.booleanAlgebra.{0} (Fin n)))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₁)) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i₁)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i₁)) (Fin.hasLe (Composition.blocksFun n c i₁))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i₁)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i₁)) (Fin.hasLe (Composition.blocksFun n c i₁))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i₁))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₂)) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i₂)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i₂)) (Fin.hasLe (Composition.blocksFun n c i₂))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i₂)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i₂)) (Fin.hasLe (Composition.blocksFun n c i₂))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i₂))))
-but is expected to have type
-  forall {n : Nat} (c : Composition n) {i₁ : Fin (Composition.length n c)} {i₂ : Fin (Composition.length n c)}, (Ne.{1} (Fin (Composition.length n c)) i₁ i₂) -> (Disjoint.{0} (Set.{0} (Fin n)) (CompleteSemilatticeInf.toPartialOrder.{0} (Set.{0} (Fin n)) (CompleteLattice.toCompleteSemilatticeInf.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))) (BoundedOrder.toOrderBot.{0} (Set.{0} (Fin n)) (Preorder.toLE.{0} (Set.{0} (Fin n)) (PartialOrder.toPreorder.{0} (Set.{0} (Fin n)) (CompleteSemilatticeInf.toPartialOrder.{0} (Set.{0} (Fin n)) (CompleteLattice.toCompleteSemilatticeInf.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))))) (CompleteLattice.toBoundedOrder.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₁)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (fun (_x : Fin (Composition.blocksFun n c i₁)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i₁)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i₁)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i₁)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i₁)) (Fin.instLinearOrderFin (Composition.blocksFun n c i₁))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i₁)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i₁)) (Fin.instLinearOrderFin (Composition.blocksFun n c i₁)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i₁)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i₁)) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c i₁)) => LE.le.{0} (Fin (Composition.blocksFun n c i₁)) (instLEFin (Composition.blocksFun n c i₁)) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c i₁))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₂)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (fun (_x : Fin (Composition.blocksFun n c i₂)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i₂)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i₂)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i₂)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i₂)) (Fin.instLinearOrderFin (Composition.blocksFun n c i₂))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i₂)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i₂)) (Fin.instLinearOrderFin (Composition.blocksFun n c i₂)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i₂)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i₂)) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c i₂)) => LE.le.{0} (Fin (Composition.blocksFun n c i₂)) (instLEFin (Composition.blocksFun n c i₂)) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c i₂))))
-Case conversion may be inaccurate. Consider using '#align composition.disjoint_range Composition.disjoint_rangeₓ'. -/
 /-- The embeddings of different blocks of a composition are disjoint. -/
 theorem disjoint_range {i₁ i₂ : Fin c.length} (h : i₁ ≠ i₂) :
     Disjoint (Set.range (c.Embedding i₁)) (Set.range (c.Embedding i₂)) := by
@@ -518,12 +476,6 @@ theorem disjoint_range {i₁ i₂ : Fin c.length} (h : i₁ ≠ i₂) :
       
 #align composition.disjoint_range Composition.disjoint_range
 
-/- warning: composition.mem_range_embedding -> Composition.mem_range_embedding is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (c : Composition n) (j : Fin n), Membership.Mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.hasMem.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c (Composition.index n c j))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j)))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c (Composition.index n c j))) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j)))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c (Composition.index n c j))))
-but is expected to have type
-  forall {n : Nat} (c : Composition n) (j : Fin n), Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c (Composition.index n c j))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (fun (_x : Fin (Composition.blocksFun n c (Composition.index n c j))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instDistribLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j)))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instDistribLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j))))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c (Composition.index n c j))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c (Composition.index n c j))) => LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c (Composition.index n c j))))
-Case conversion may be inaccurate. Consider using '#align composition.mem_range_embedding Composition.mem_range_embeddingₓ'. -/
 theorem mem_range_embedding (j : Fin n) : j ∈ Set.range (c.Embedding (c.index j)) :=
   by
   have : c.embedding (c.index j) (c.inv_embedding j) ∈ Set.range (c.embedding (c.index j)) :=
@@ -531,12 +483,6 @@ theorem mem_range_embedding (j : Fin n) : j ∈ Set.range (c.Embedding (c.index
   rwa [c.embedding_comp_inv j] at this
 #align composition.mem_range_embedding Composition.mem_range_embedding
 
-/- warning: composition.mem_range_embedding_iff' -> Composition.mem_range_embedding_iff' is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.Mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.hasMem.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i)))) (Eq.{1} (Fin (Composition.length n c)) i (Composition.index n c j))
-but is expected to have type
-  forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c i)))) (Eq.{1} (Fin (Composition.length n c)) i (Composition.index n c j))
-Case conversion may be inaccurate. Consider using '#align composition.mem_range_embedding_iff' Composition.mem_range_embedding_iff'ₓ'. -/
 theorem mem_range_embedding_iff' {j : Fin n} {i : Fin c.length} :
     j ∈ Set.range (c.Embedding i) ↔ i = c.index j :=
   by
@@ -549,12 +495,6 @@ theorem mem_range_embedding_iff' {j : Fin n} {i : Fin c.length} :
     exact c.mem_range_embedding j
 #align composition.mem_range_embedding_iff' Composition.mem_range_embedding_iff'
 
-/- warning: composition.index_embedding -> Composition.index_embedding is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} (Fin (Composition.length n c)) (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)) i
-but is expected to have type
-  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} (Fin (Composition.length n c)) (Composition.index n c (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c i) j)) i
-Case conversion may be inaccurate. Consider using '#align composition.index_embedding Composition.index_embeddingₓ'. -/
 theorem index_embedding (i : Fin c.length) (j : Fin (c.blocksFun i)) :
     c.index (c.Embedding i j) = i := by
   symm
@@ -562,12 +502,6 @@ theorem index_embedding (i : Fin c.length) (j : Fin (c.blocksFun i)) :
   apply Set.mem_range_self
 #align composition.index_embedding Composition.index_embedding
 
-/- warning: composition.inv_embedding_comp -> Composition.invEmbedding_comp is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)))) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)))) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)))) Nat (coeBase.{1, 1} (Fin (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)))) Nat (Fin.coeToNat (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j))))))) (Composition.invEmbedding n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.blocksFun n c i)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (coeBase.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (Fin.coeToNat (Composition.blocksFun n c i))))) j)
-but is expected to have type
-  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat (Fin.val (Composition.blocksFun n c (Composition.index n c (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (a : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c i) j))) (Composition.invEmbedding n c (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c i) j))) (Fin.val (Composition.blocksFun n c i) j)
-Case conversion may be inaccurate. Consider using '#align composition.inv_embedding_comp Composition.invEmbedding_compₓ'. -/
 theorem invEmbedding_comp (i : Fin c.length) (j : Fin (c.blocksFun i)) :
     (c.invEmbedding (c.Embedding i j) : ℕ) = j := by
   simp_rw [coe_inv_embedding, index_embedding, coe_embedding, add_tsub_cancel_left]
@@ -650,23 +584,11 @@ theorem ones_blocksFun (n : ℕ) (i : Fin (ones n).length) : (ones n).blocksFun
 #align composition.ones_blocks_fun Composition.ones_blocksFun
 -/
 
-/- warning: composition.ones_size_up_to -> Composition.ones_sizeUpTo is a dubious translation:
-lean 3 declaration is
-  forall (n : Nat) (i : Nat), Eq.{1} Nat (Composition.sizeUpTo n (Composition.ones n) i) (LinearOrder.min.{0} Nat Nat.linearOrder i n)
-but is expected to have type
-  forall (n : Nat) (i : Nat), Eq.{1} Nat (Composition.sizeUpTo n (Composition.ones n) i) (Min.min.{0} Nat instMinNat i n)
-Case conversion may be inaccurate. Consider using '#align composition.ones_size_up_to Composition.ones_sizeUpToₓ'. -/
 @[simp]
 theorem ones_sizeUpTo (n : ℕ) (i : ℕ) : (ones n).sizeUpTo i = min i n := by
   simp [size_up_to, ones_blocks, take_replicate]
 #align composition.ones_size_up_to Composition.ones_sizeUpTo
 
-/- warning: composition.ones_embedding -> Composition.ones_embedding is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (i : Fin (Composition.length n (Composition.ones n))) (h : LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.blocksFun n (Composition.ones n) i)), Eq.{1} (Fin n) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (Fin.hasLe (Composition.blocksFun n (Composition.ones n) i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin.hasLe (Composition.blocksFun n (Composition.ones n) i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n (Composition.ones n) i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin.hasLe (Composition.blocksFun n (Composition.ones n) i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n (Composition.ones n) i) (Fin.mk (Composition.blocksFun n (Composition.ones n) i) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) h)) (Fin.mk n ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n (Composition.ones n))) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (coeBase.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (Fin.coeToNat (Composition.length n (Composition.ones n)))))) i) (lt_of_lt_of_le.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n (Composition.ones n))) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (coeBase.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (Fin.coeToNat (Composition.length n (Composition.ones n)))))) i) (Composition.length n (Composition.ones n)) n (Fin.property (Composition.length n (Composition.ones n)) i) (Composition.length_le n (Composition.ones n))))
-but is expected to have type
-  forall {n : Nat} (i : Fin (Composition.length n (Composition.ones n))) (h : LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Composition.blocksFun n (Composition.ones n) i)), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n (Composition.ones n) i)) => Fin n) (Fin.mk (Composition.blocksFun n (Composition.ones n) i) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) h)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (fun (_x : Fin (Composition.blocksFun n (Composition.ones n) i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n (Composition.ones n) i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.ones n) i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.ones n) i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.ones n) i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n (Composition.ones n) i)) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n (Composition.ones n) i)) => LE.le.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n (Composition.ones n) i) (Fin.mk (Composition.blocksFun n (Composition.ones n) i) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) h)) (Fin.mk n (Fin.val (Composition.length n (Composition.ones n)) i) (lt_of_lt_of_le.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (Fin.val (Composition.length n (Composition.ones n)) i) (Composition.length n (Composition.ones n)) n (Fin.isLt (Composition.length n (Composition.ones n)) i) (Composition.length_le n (Composition.ones n))))
-Case conversion may be inaccurate. Consider using '#align composition.ones_embedding Composition.ones_embeddingₓ'. -/
 @[simp]
 theorem ones_embedding (i : Fin (ones n).length) (h : 0 < (ones n).blocksFun i) :
     (ones n).Embedding i ⟨0, h⟩ = ⟨i, lt_of_lt_of_le i.2 (ones n).length_le⟩ := by ext;
@@ -687,12 +609,6 @@ theorem eq_ones_iff {c : Composition n} : c = ones n ↔ ∀ i ∈ c.blocks, i =
 #align composition.eq_ones_iff Composition.eq_ones_iff
 -/
 
-/- warning: composition.ne_ones_iff -> Composition.ne_ones_iff is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} {c : Composition n}, Iff (Ne.{1} (Composition n) c (Composition.ones n)) (Exists.{1} Nat (fun (i : Nat) => Exists.{0} (Membership.Mem.{0, 0} Nat (List.{0} Nat) (List.hasMem.{0} Nat) i (Composition.blocks n c)) (fun (H : Membership.Mem.{0, 0} Nat (List.{0} Nat) (List.hasMem.{0} Nat) i (Composition.blocks n c)) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) i)))
-but is expected to have type
-  forall {n : Nat} {c : Composition n}, Iff (Ne.{1} (Composition n) c (Composition.ones n)) (Exists.{1} Nat (fun (i : Nat) => And (Membership.mem.{0, 0} Nat (List.{0} Nat) (List.instMembershipList.{0} Nat) i (Composition.blocks n c)) (LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) i)))
-Case conversion may be inaccurate. Consider using '#align composition.ne_ones_iff Composition.ne_ones_iffₓ'. -/
 theorem ne_ones_iff {c : Composition n} : c ≠ ones n ↔ ∃ i ∈ c.blocks, 1 < i :=
   by
   refine' (not_congr eq_ones_iff).trans _
@@ -760,9 +676,6 @@ theorem single_blocksFun {n : ℕ} (h : 0 < n) (i : Fin (single n h).length) :
 #align composition.single_blocks_fun Composition.single_blocksFun
 -/
 
-/- warning: composition.single_embedding -> Composition.single_embedding is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align composition.single_embedding Composition.single_embeddingₓ'. -/
 @[simp]
 theorem single_embedding {n : ℕ} (h : 0 < n) (i : Fin n) :
     (single n h).Embedding ⟨0, single_length h ▸ zero_lt_one⟩ i = i := by ext; simp
@@ -1098,20 +1011,11 @@ theorem lt_length' (i : Fin c.length) : (i : ℕ) < c.boundaries.card :=
 #align composition_as_set.lt_length' CompositionAsSet.lt_length'
 -/
 
-/- warning: composition_as_set.boundary -> CompositionAsSet.boundary is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (c : CompositionAsSet n), OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))
-but is expected to have type
-  forall {n : Nat} (c : CompositionAsSet n), OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
-Case conversion may be inaccurate. Consider using '#align composition_as_set.boundary CompositionAsSet.boundaryₓ'. -/
 /-- Canonical increasing bijection from `fin c.boundaries.card` to `c.boundaries`. -/
 def boundary : Fin c.boundaries.card ↪o Fin (n + 1) :=
   c.boundaries.orderEmbOfFin rfl
 #align composition_as_set.boundary CompositionAsSet.boundary
 
-/- warning: composition_as_set.boundary_zero -> CompositionAsSet.boundary_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align composition_as_set.boundary_zero CompositionAsSet.boundary_zeroₓ'. -/
 @[simp]
 theorem boundary_zero : (c.boundary ⟨0, c.card_boundaries_pos⟩ : Fin (n + 1)) = 0 :=
   by
@@ -1119,12 +1023,6 @@ theorem boundary_zero : (c.boundary ⟨0, c.card_boundaries_pos⟩ : Fin (n + 1)
   exact le_antisymm (Finset.min'_le _ _ c.zero_mem) (Fin.zero_le _)
 #align composition_as_set.boundary_zero CompositionAsSet.boundary_zero
 
-/- warning: composition_as_set.boundary_length -> CompositionAsSet.boundary_length is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) => (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (Fin.last n)
-but is expected to have type
-  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (Fin.last n)
-Case conversion may be inaccurate. Consider using '#align composition_as_set.boundary_length CompositionAsSet.boundary_lengthₓ'. -/
 @[simp]
 theorem boundary_length : c.boundary ⟨c.length, c.length_lt_card_boundaries⟩ = Fin.last n :=
   by
@@ -1161,12 +1059,6 @@ theorem blocks_length : c.blocks.length = c.length :=
 #align composition_as_set.blocks_length CompositionAsSet.blocks_length
 -/
 
-/- warning: composition_as_set.blocks_partial_sum -> CompositionAsSet.blocks_partial_sum is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (c : CompositionAsSet n) {i : Nat} (h : LT.lt.{0} Nat Nat.hasLt i (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))), Eq.{1} Nat (List.sum.{0} Nat Nat.hasAdd Nat.hasZero (List.take.{0} Nat i (CompositionAsSet.blocks n c))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (HasLiftT.mk.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (CoeTCₓ.coe.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (coeBase.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (Fin.coeToNat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) => (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) i h)))
-but is expected to have type
-  forall {n : Nat} (c : CompositionAsSet n) {i : Nat} (h : LT.lt.{0} Nat instLTNat i (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))), Eq.{1} Nat (List.sum.{0} Nat instAddNat (LinearOrderedCommMonoidWithZero.toZero.{0} Nat Nat.linearOrderedCommMonoidWithZero) (List.take.{0} Nat i (CompositionAsSet.blocks n c))) (Fin.val (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) i h)))
-Case conversion may be inaccurate. Consider using '#align composition_as_set.blocks_partial_sum CompositionAsSet.blocks_partial_sumₓ'. -/
 theorem blocks_partial_sum {i : ℕ} (h : i < c.boundaries.card) :
     (c.blocks.take i).Sum = c.boundary ⟨i, h⟩ :=
   by
@@ -1182,12 +1074,6 @@ theorem blocks_partial_sum {i : ℕ} (h : i < c.boundaries.card) :
   simp
 #align composition_as_set.blocks_partial_sum CompositionAsSet.blocks_partial_sum
 
-/- warning: composition_as_set.mem_boundaries_iff_exists_blocks_sum_take_eq -> CompositionAsSet.mem_boundaries_iff_exists_blocks_sum_take_eq is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (c : CompositionAsSet n) {j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))}, Iff (Membership.Mem.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Finset.{0} (Fin (Nat.succ n))) (Finset.hasMem.{0} (Fin (Nat.succ n))) j (CompositionAsSet.boundaries n c)) (Exists.{1} Nat (fun (i : Nat) => Exists.{0} (LT.lt.{0} Nat Nat.hasLt i (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (H : LT.lt.{0} Nat Nat.hasLt i (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Eq.{1} Nat (List.sum.{0} Nat Nat.hasAdd Nat.hasZero (List.take.{0} Nat i (CompositionAsSet.blocks n c))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (HasLiftT.mk.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (CoeTCₓ.coe.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (coeBase.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (Fin.coeToNat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) j))))
-but is expected to have type
-  forall {n : Nat} (c : CompositionAsSet n) {j : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))}, Iff (Membership.mem.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Finset.{0} (Fin (Nat.succ n))) (Finset.instMembershipFinset.{0} (Fin (Nat.succ n))) j (CompositionAsSet.boundaries n c)) (Exists.{1} Nat (fun (i : Nat) => And (LT.lt.{0} Nat instLTNat i (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Eq.{1} Nat (List.sum.{0} Nat instAddNat (LinearOrderedCommMonoidWithZero.toZero.{0} Nat Nat.linearOrderedCommMonoidWithZero) (List.take.{0} Nat i (CompositionAsSet.blocks n c))) (Fin.val (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) j))))
-Case conversion may be inaccurate. Consider using '#align composition_as_set.mem_boundaries_iff_exists_blocks_sum_take_eq CompositionAsSet.mem_boundaries_iff_exists_blocks_sum_take_eqₓ'. -/
 theorem mem_boundaries_iff_exists_blocks_sum_take_eq {j : Fin (n + 1)} :
     j ∈ c.boundaries ↔ ∃ i < c.boundaries.card, (c.blocks.take i).Sum = j :=
   by
Diff
@@ -265,9 +265,7 @@ theorem sizeUpTo_le (i : ℕ) : c.sizeUpTo i ≤ n :=
 
 #print Composition.sizeUpTo_succ /-
 theorem sizeUpTo_succ {i : ℕ} (h : i < c.length) :
-    c.sizeUpTo (i + 1) = c.sizeUpTo i + c.blocks.nthLe i h :=
-  by
-  simp only [size_up_to]
+    c.sizeUpTo (i + 1) = c.sizeUpTo i + c.blocks.nthLe i h := by simp only [size_up_to];
   rw [sum_take_succ _ _ h]
 #align composition.size_up_to_succ Composition.sizeUpTo_succ
 -/
@@ -280,10 +278,8 @@ theorem sizeUpTo_succ' (i : Fin c.length) :
 -/
 
 #print Composition.sizeUpTo_strict_mono /-
-theorem sizeUpTo_strict_mono {i : ℕ} (h : i < c.length) : c.sizeUpTo i < c.sizeUpTo (i + 1) :=
-  by
-  rw [c.size_up_to_succ h]
-  simp
+theorem sizeUpTo_strict_mono {i : ℕ} (h : i < c.length) : c.sizeUpTo i < c.sizeUpTo (i + 1) := by
+  rw [c.size_up_to_succ h]; simp
 #align composition.size_up_to_strict_mono Composition.sizeUpTo_strict_mono
 -/
 
@@ -430,8 +426,7 @@ theorem sizeUpTo_index_le (j : Fin n) : c.sizeUpTo (c.index j) ≤ j :=
   push_neg  at H
   have i_pos : (0 : ℕ) < i := by
     by_contra' i_pos
-    revert H
-    simp [nonpos_iff_eq_zero.1 i_pos, c.size_up_to_zero]
+    revert H; simp [nonpos_iff_eq_zero.1 i_pos, c.size_up_to_zero]
   let i₁ := (i : ℕ).pred
   have i₁_lt_i : i₁ < i := Nat.pred_lt (ne_of_gt i_pos)
   have i₁_succ : i₁.succ = i := Nat.succ_pred_eq_of_pos i_pos
@@ -599,12 +594,8 @@ def blocksFinEquiv : (Σi : Fin c.length, Fin (c.blocksFun i)) ≃ Fin n
 #print Composition.blocksFun_congr /-
 theorem blocksFun_congr {n₁ n₂ : ℕ} (c₁ : Composition n₁) (c₂ : Composition n₂) (i₁ : Fin c₁.length)
     (i₂ : Fin c₂.length) (hn : n₁ = n₂) (hc : c₁.blocks = c₂.blocks) (hi : (i₁ : ℕ) = i₂) :
-    c₁.blocksFun i₁ = c₂.blocksFun i₂ := by
-  cases hn
-  rw [← Composition.ext_iff] at hc
-  cases hc
-  congr
-  rwa [Fin.ext_iff]
+    c₁.blocksFun i₁ = c₂.blocksFun i₂ := by cases hn; rw [← Composition.ext_iff] at hc; cases hc;
+  congr ; rwa [Fin.ext_iff]
 #align composition.blocks_fun_congr Composition.blocksFun_congr
 -/
 
@@ -678,9 +669,7 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align composition.ones_embedding Composition.ones_embeddingₓ'. -/
 @[simp]
 theorem ones_embedding (i : Fin (ones n).length) (h : 0 < (ones n).blocksFun i) :
-    (ones n).Embedding i ⟨0, h⟩ = ⟨i, lt_of_lt_of_le i.2 (ones n).length_le⟩ :=
-  by
-  ext
+    (ones n).Embedding i ⟨0, h⟩ = ⟨i, lt_of_lt_of_le i.2 (ones n).length_le⟩ := by ext;
   simpa using i.2.le
 #align composition.ones_embedding Composition.ones_embedding
 
@@ -693,9 +682,7 @@ theorem eq_ones_iff {c : Composition n} : c = ones n ↔ ∀ i ∈ c.blocks, i =
   · intro H
     ext1
     have A : c.blocks = replicate c.blocks.length 1 := eq_replicate_of_mem H
-    have : c.blocks.length = n := by
-      conv_rhs => rw [← c.blocks_sum, A]
-      simp
+    have : c.blocks.length = n := by conv_rhs => rw [← c.blocks_sum, A]; simp
     rw [A, this, ones_blocks]
 #align composition.eq_ones_iff Composition.eq_ones_iff
 -/
@@ -778,10 +765,7 @@ theorem single_blocksFun {n : ℕ} (h : 0 < n) (i : Fin (single n h).length) :
 Case conversion may be inaccurate. Consider using '#align composition.single_embedding Composition.single_embeddingₓ'. -/
 @[simp]
 theorem single_embedding {n : ℕ} (h : 0 < n) (i : Fin n) :
-    (single n h).Embedding ⟨0, single_length h ▸ zero_lt_one⟩ i = i :=
-  by
-  ext
-  simp
+    (single n h).Embedding ⟨0, single_length h ▸ zero_lt_one⟩ i = i := by ext; simp
 #align composition.single_embedding Composition.single_embedding
 
 #print Composition.eq_single_iff_length /-
@@ -922,9 +906,7 @@ theorem length_pos_of_mem_splitWrtComposition {l l' : List α} {c : Composition
 
 #print List.sum_take_map_length_splitWrtComposition /-
 theorem sum_take_map_length_splitWrtComposition (l : List α) (c : Composition l.length) (i : ℕ) :
-    (((l.splitWrtComposition c).map length).take i).Sum = c.sizeUpTo i :=
-  by
-  congr
+    (((l.splitWrtComposition c).map length).take i).Sum = c.sizeUpTo i := by congr ;
   exact map_length_split_wrt_composition l c
 #align list.sum_take_map_length_split_wrt_composition List.sum_take_map_length_splitWrtComposition
 -/
@@ -1020,13 +1002,11 @@ def compositionAsSetEquiv (n : ℕ) : CompositionAsSet n ≃ Finset (Fin (n - 1)
     · rintro (rfl | rfl | ⟨j, hj1, hj2⟩)
       · exact c.zero_mem
       · exact c.last_mem
-      · convert hj1
-        rwa [Fin.ext_iff]
+      · convert hj1; rwa [Fin.ext_iff]
     · simp only [or_iff_not_imp_left]
       intro i_mem i_ne_zero i_ne_last
       simp [Fin.ext_iff] at i_ne_zero i_ne_last
-      have A : (1 + (i - 1) : ℕ) = (i : ℕ) := by
-        rw [add_comm]
+      have A : (1 + (i - 1) : ℕ) = (i : ℕ) := by rw [add_comm];
         exact Nat.succ_pred_eq_of_pos (pos_iff_ne_zero.mpr i_ne_zero)
       refine' ⟨⟨i - 1, _⟩, _, _⟩
       · have : (i : ℕ) < n + 1 := i.2
@@ -1051,11 +1031,8 @@ def compositionAsSetEquiv (n : ℕ) : CompositionAsSet n ≃ Finset (Fin (n - 1)
     simp only [this, false_or_iff, add_right_inj, add_eq_zero_iff, one_ne_zero, false_and_iff,
       Fin.val_mk]
     constructor
-    · rintro ⟨j, js, hj⟩
-      convert js
-      exact Fin.ext_iff.2 hj
-    · intro h
-      exact ⟨i, h, rfl⟩
+    · rintro ⟨j, js, hj⟩; convert js; exact Fin.ext_iff.2 hj
+    · intro h; exact ⟨i, h, rfl⟩
 #align composition_as_set_equiv compositionAsSetEquiv
 -/
 
@@ -1104,10 +1081,8 @@ theorem card_boundaries_eq_succ_length : c.boundaries.card = c.length + 1 :=
 -/
 
 #print CompositionAsSet.length_lt_card_boundaries /-
-theorem length_lt_card_boundaries : c.length < c.boundaries.card :=
-  by
-  rw [c.card_boundaries_eq_succ_length]
-  exact lt_add_one _
+theorem length_lt_card_boundaries : c.length < c.boundaries.card := by
+  rw [c.card_boundaries_eq_succ_length]; exact lt_add_one _
 #align composition_as_set.length_lt_card_boundaries CompositionAsSet.length_lt_card_boundaries
 -/
 
@@ -1195,8 +1170,7 @@ Case conversion may be inaccurate. Consider using '#align composition_as_set.blo
 theorem blocks_partial_sum {i : ℕ} (h : i < c.boundaries.card) :
     (c.blocks.take i).Sum = c.boundary ⟨i, h⟩ :=
   by
-  induction' i with i IH
-  · simp
+  induction' i with i IH; · simp
   have A : i < c.blocks.length :=
     by
     rw [c.card_boundaries_eq_succ_length] at h
@@ -1348,12 +1322,8 @@ def compositionEquiv (n : ℕ) : Composition n ≃ CompositionAsSet n
     where
   toFun c := c.toCompositionAsSet
   invFun c := c.toComposition
-  left_inv c := by
-    ext1
-    exact c.to_composition_as_set_blocks
-  right_inv c := by
-    ext1
-    exact c.to_composition_boundaries
+  left_inv c := by ext1; exact c.to_composition_as_set_blocks
+  right_inv c := by ext1; exact c.to_composition_boundaries
 #align composition_equiv compositionEquiv
 -/
 
Diff
@@ -308,20 +308,14 @@ def boundary : Fin (c.length + 1) ↪o Fin (n + 1) :=
 #align composition.boundary Composition.boundary
 
 /- warning: composition.boundary_zero -> Composition.boundary_zero is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (c : Composition n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Composition.boundary n c) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne)) (NeZero.succ (Composition.length n c))))))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne)) (NeZero.succ n)))))
-but is expected to have type
-  forall {n : Nat} (c : Composition n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.boundary n c) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ n)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align composition.boundary_zero Composition.boundary_zeroₓ'. -/
 @[simp]
 theorem boundary_zero : c.boundary 0 = 0 := by simp [boundary, Fin.ext_iff]
 #align composition.boundary_zero Composition.boundary_zero
 
 /- warning: composition.boundary_last -> Composition.boundary_last is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (c : Composition n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Composition.boundary n c) (Fin.last (Composition.length n c))) (Fin.last n)
-but is expected to have type
-  forall {n : Nat} (c : Composition n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.last (Composition.length n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.boundary n c) (Fin.last (Composition.length n c))) (Fin.last n)
+<too large>
 Case conversion may be inaccurate. Consider using '#align composition.boundary_last Composition.boundary_lastₓ'. -/
 @[simp]
 theorem boundary_last : c.boundary (Fin.last c.length) = Fin.last n := by
@@ -780,10 +774,7 @@ theorem single_blocksFun {n : ℕ} (h : 0 < n) (i : Fin (single n h).length) :
 -/
 
 /- warning: composition.single_embedding -> Composition.single_embedding is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (h : LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) (i : Fin n), Eq.{1} (Fin n) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin n) (Fin.hasLe (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin.hasLe (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial))))))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin.hasLe (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial))))))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial))))) i) i
-but is expected to have type
-  forall {n : Nat} (h : LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) (i : Fin n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => Fin n) i) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (fun (_x : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instDistribLattice.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instDistribLattice.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => LE.le.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))) i) i
+<too large>
 Case conversion may be inaccurate. Consider using '#align composition.single_embedding Composition.single_embeddingₓ'. -/
 @[simp]
 theorem single_embedding {n : ℕ} (h : 0 < n) (i : Fin n) :
@@ -1144,10 +1135,7 @@ def boundary : Fin c.boundaries.card ↪o Fin (n + 1) :=
 #align composition_as_set.boundary CompositionAsSet.boundary
 
 /- warning: composition_as_set.boundary_zero -> CompositionAsSet.boundary_zero is a dubious translation:
-lean 3 declaration is
-  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) => (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (CompositionAsSet.card_boundaries_pos n c))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne)) (NeZero.succ n)))))
-but is expected to have type
-  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ n)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align composition_as_set.boundary_zero CompositionAsSet.boundary_zeroₓ'. -/
 @[simp]
 theorem boundary_zero : (c.boundary ⟨0, c.card_boundaries_pos⟩ : Fin (n + 1)) = 0 :=
Diff
@@ -311,7 +311,7 @@ def boundary : Fin (c.length + 1) ↪o Fin (n + 1) :=
 lean 3 declaration is
   forall {n : Nat} (c : Composition n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Composition.boundary n c) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne)) (NeZero.succ (Composition.length n c))))))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne)) (NeZero.succ n)))))
 but is expected to have type
-  forall {n : Nat} (c : Composition n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.boundary n c) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ n)))
+  forall {n : Nat} (c : Composition n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.boundary n c) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ n)))
 Case conversion may be inaccurate. Consider using '#align composition.boundary_zero Composition.boundary_zeroₓ'. -/
 @[simp]
 theorem boundary_zero : c.boundary 0 = 0 := by simp [boundary, Fin.ext_iff]
@@ -321,7 +321,7 @@ theorem boundary_zero : c.boundary 0 = 0 := by simp [boundary, Fin.ext_iff]
 lean 3 declaration is
   forall {n : Nat} (c : Composition n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Composition.boundary n c) (Fin.last (Composition.length n c))) (Fin.last n)
 but is expected to have type
-  forall {n : Nat} (c : Composition n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.last (Composition.length n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.boundary n c) (Fin.last (Composition.length n c))) (Fin.last n)
+  forall {n : Nat} (c : Composition n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.last (Composition.length n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.boundary n c) (Fin.last (Composition.length n c))) (Fin.last n)
 Case conversion may be inaccurate. Consider using '#align composition.boundary_last Composition.boundary_lastₓ'. -/
 @[simp]
 theorem boundary_last : c.boundary (Fin.last c.length) = Fin.last n := by
@@ -392,7 +392,7 @@ def embedding (i : Fin c.length) : Fin (c.blocksFun i) ↪o Fin n :=
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin n) Nat (HasLiftT.mk.{1, 1} (Fin n) Nat (CoeTCₓ.coe.{1, 1} (Fin n) Nat (coeBase.{1, 1} (Fin n) Nat (Fin.coeToNat n)))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.sizeUpTo n c ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n c)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n c)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n c)) Nat (coeBase.{1, 1} (Fin (Composition.length n c)) Nat (Fin.coeToNat (Composition.length n c))))) i)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.blocksFun n c i)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (coeBase.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (Fin.coeToNat (Composition.blocksFun n c i))))) j))
 but is expected to have type
-  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat (Fin.val n (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c i) j)) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.sizeUpTo n c (Fin.val (Composition.length n c) i)) (Fin.val (Composition.blocksFun n c i) j))
+  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat (Fin.val n (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c i) j)) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.sizeUpTo n c (Fin.val (Composition.length n c) i)) (Fin.val (Composition.blocksFun n c i) j))
 Case conversion may be inaccurate. Consider using '#align composition.coe_embedding Composition.coe_embeddingₓ'. -/
 @[simp]
 theorem coe_embedding (i : Fin c.length) (j : Fin (c.blocksFun i)) :
@@ -470,7 +470,7 @@ theorem coe_invEmbedding (j : Fin n) : (c.invEmbedding j : ℕ) = j - c.sizeUpTo
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) (j : Fin n), Eq.{1} (Fin n) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j)))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c (Composition.index n c j))) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j)))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c (Composition.index n c j)) (Composition.invEmbedding n c j)) j
 but is expected to have type
-  forall {n : Nat} (c : Composition n) (j : Fin n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) (Composition.invEmbedding n c j)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (fun (_x : Fin (Composition.blocksFun n c (Composition.index n c j))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instDistribLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j)))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instDistribLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j))))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c (Composition.index n c j))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c (Composition.index n c j))) => LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c (Composition.index n c j)) (Composition.invEmbedding n c j)) j
+  forall {n : Nat} (c : Composition n) (j : Fin n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) (Composition.invEmbedding n c j)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (fun (_x : Fin (Composition.blocksFun n c (Composition.index n c j))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instDistribLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j)))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instDistribLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j))))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c (Composition.index n c j))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c (Composition.index n c j))) => LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c (Composition.index n c j)) (Composition.invEmbedding n c j)) j
 Case conversion may be inaccurate. Consider using '#align composition.embedding_comp_inv Composition.embedding_comp_invₓ'. -/
 theorem embedding_comp_inv (j : Fin n) : c.Embedding (c.index j) (c.invEmbedding j) = j :=
   by
@@ -482,7 +482,7 @@ theorem embedding_comp_inv (j : Fin n) : c.Embedding (c.index j) (c.invEmbedding
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.Mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.hasMem.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i)))) (And (LE.le.{0} Nat Nat.hasLe (Composition.sizeUpTo n c ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n c)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n c)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n c)) Nat (coeBase.{1, 1} (Fin (Composition.length n c)) Nat (Fin.coeToNat (Composition.length n c))))) i)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin n) Nat (HasLiftT.mk.{1, 1} (Fin n) Nat (CoeTCₓ.coe.{1, 1} (Fin n) Nat (coeBase.{1, 1} (Fin n) Nat (Fin.coeToNat n)))) j)) (LT.lt.{0} Nat Nat.hasLt ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin n) Nat (HasLiftT.mk.{1, 1} (Fin n) Nat (CoeTCₓ.coe.{1, 1} (Fin n) Nat (coeBase.{1, 1} (Fin n) Nat (Fin.coeToNat n)))) j) (Composition.sizeUpTo n c (Nat.succ ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n c)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n c)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n c)) Nat (coeBase.{1, 1} (Fin (Composition.length n c)) Nat (Fin.coeToNat (Composition.length n c))))) i)))))
 but is expected to have type
-  forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c i)))) (And (LE.le.{0} Nat instLENat (Composition.sizeUpTo n c (Fin.val (Composition.length n c) i)) (Fin.val n j)) (LT.lt.{0} Nat instLTNat (Fin.val n j) (Composition.sizeUpTo n c (Nat.succ (Fin.val (Composition.length n c) i)))))
+  forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c i)))) (And (LE.le.{0} Nat instLENat (Composition.sizeUpTo n c (Fin.val (Composition.length n c) i)) (Fin.val n j)) (LT.lt.{0} Nat instLTNat (Fin.val n j) (Composition.sizeUpTo n c (Nat.succ (Fin.val (Composition.length n c) i)))))
 Case conversion may be inaccurate. Consider using '#align composition.mem_range_embedding_iff Composition.mem_range_embedding_iffₓ'. -/
 theorem mem_range_embedding_iff {j : Fin n} {i : Fin c.length} :
     j ∈ Set.range (c.Embedding i) ↔ c.sizeUpTo i ≤ j ∧ (j : ℕ) < c.sizeUpTo (i : ℕ).succ :=
@@ -508,7 +508,7 @@ theorem mem_range_embedding_iff {j : Fin n} {i : Fin c.length} :
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) {i₁ : Fin (Composition.length n c)} {i₂ : Fin (Composition.length n c)}, (Ne.{1} (Fin (Composition.length n c)) i₁ i₂) -> (Disjoint.{0} (Set.{0} (Fin n)) (CompleteSemilatticeInf.toPartialOrder.{0} (Set.{0} (Fin n)) (CompleteLattice.toCompleteSemilatticeInf.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.completeBooleanAlgebra.{0} (Fin n))))))) (GeneralizedBooleanAlgebra.toOrderBot.{0} (Set.{0} (Fin n)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{0} (Set.{0} (Fin n)) (Set.booleanAlgebra.{0} (Fin n)))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₁)) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i₁)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i₁)) (Fin.hasLe (Composition.blocksFun n c i₁))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i₁)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i₁)) (Fin.hasLe (Composition.blocksFun n c i₁))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i₁))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₂)) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i₂)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i₂)) (Fin.hasLe (Composition.blocksFun n c i₂))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i₂)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i₂)) (Fin.hasLe (Composition.blocksFun n c i₂))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i₂))))
 but is expected to have type
-  forall {n : Nat} (c : Composition n) {i₁ : Fin (Composition.length n c)} {i₂ : Fin (Composition.length n c)}, (Ne.{1} (Fin (Composition.length n c)) i₁ i₂) -> (Disjoint.{0} (Set.{0} (Fin n)) (CompleteSemilatticeInf.toPartialOrder.{0} (Set.{0} (Fin n)) (CompleteLattice.toCompleteSemilatticeInf.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))) (BoundedOrder.toOrderBot.{0} (Set.{0} (Fin n)) (Preorder.toLE.{0} (Set.{0} (Fin n)) (PartialOrder.toPreorder.{0} (Set.{0} (Fin n)) (CompleteSemilatticeInf.toPartialOrder.{0} (Set.{0} (Fin n)) (CompleteLattice.toCompleteSemilatticeInf.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))))) (CompleteLattice.toBoundedOrder.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₁)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (fun (_x : Fin (Composition.blocksFun n c i₁)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i₁)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i₁)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i₁)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i₁)) (Fin.instLinearOrderFin (Composition.blocksFun n c i₁))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i₁)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i₁)) (Fin.instLinearOrderFin (Composition.blocksFun n c i₁)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i₁)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i₁)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i₁)) => LE.le.{0} (Fin (Composition.blocksFun n c i₁)) (instLEFin (Composition.blocksFun n c i₁)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c i₁))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₂)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (fun (_x : Fin (Composition.blocksFun n c i₂)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i₂)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i₂)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i₂)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i₂)) (Fin.instLinearOrderFin (Composition.blocksFun n c i₂))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i₂)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i₂)) (Fin.instLinearOrderFin (Composition.blocksFun n c i₂)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i₂)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i₂)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i₂)) => LE.le.{0} (Fin (Composition.blocksFun n c i₂)) (instLEFin (Composition.blocksFun n c i₂)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c i₂))))
+  forall {n : Nat} (c : Composition n) {i₁ : Fin (Composition.length n c)} {i₂ : Fin (Composition.length n c)}, (Ne.{1} (Fin (Composition.length n c)) i₁ i₂) -> (Disjoint.{0} (Set.{0} (Fin n)) (CompleteSemilatticeInf.toPartialOrder.{0} (Set.{0} (Fin n)) (CompleteLattice.toCompleteSemilatticeInf.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))) (BoundedOrder.toOrderBot.{0} (Set.{0} (Fin n)) (Preorder.toLE.{0} (Set.{0} (Fin n)) (PartialOrder.toPreorder.{0} (Set.{0} (Fin n)) (CompleteSemilatticeInf.toPartialOrder.{0} (Set.{0} (Fin n)) (CompleteLattice.toCompleteSemilatticeInf.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))))) (CompleteLattice.toBoundedOrder.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₁)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (fun (_x : Fin (Composition.blocksFun n c i₁)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i₁)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i₁)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i₁)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i₁)) (Fin.instLinearOrderFin (Composition.blocksFun n c i₁))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i₁)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i₁)) (Fin.instLinearOrderFin (Composition.blocksFun n c i₁)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i₁)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i₁)) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c i₁)) => LE.le.{0} (Fin (Composition.blocksFun n c i₁)) (instLEFin (Composition.blocksFun n c i₁)) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c i₁))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₂)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (fun (_x : Fin (Composition.blocksFun n c i₂)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i₂)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i₂)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i₂)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i₂)) (Fin.instLinearOrderFin (Composition.blocksFun n c i₂))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i₂)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i₂)) (Fin.instLinearOrderFin (Composition.blocksFun n c i₂)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i₂)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i₂)) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c i₂)) => LE.le.{0} (Fin (Composition.blocksFun n c i₂)) (instLEFin (Composition.blocksFun n c i₂)) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c i₂))))
 Case conversion may be inaccurate. Consider using '#align composition.disjoint_range Composition.disjoint_rangeₓ'. -/
 /-- The embeddings of different blocks of a composition are disjoint. -/
 theorem disjoint_range {i₁ i₂ : Fin c.length} (h : i₁ ≠ i₂) :
@@ -533,7 +533,7 @@ theorem disjoint_range {i₁ i₂ : Fin c.length} (h : i₁ ≠ i₂) :
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) (j : Fin n), Membership.Mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.hasMem.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c (Composition.index n c j))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j)))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c (Composition.index n c j))) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j)))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c (Composition.index n c j))))
 but is expected to have type
-  forall {n : Nat} (c : Composition n) (j : Fin n), Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c (Composition.index n c j))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (fun (_x : Fin (Composition.blocksFun n c (Composition.index n c j))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instDistribLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j)))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instDistribLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j))))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c (Composition.index n c j))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c (Composition.index n c j))) => LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c (Composition.index n c j))))
+  forall {n : Nat} (c : Composition n) (j : Fin n), Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c (Composition.index n c j))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (fun (_x : Fin (Composition.blocksFun n c (Composition.index n c j))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instDistribLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j)))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instDistribLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j))))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c (Composition.index n c j))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c (Composition.index n c j))) => LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c (Composition.index n c j))))
 Case conversion may be inaccurate. Consider using '#align composition.mem_range_embedding Composition.mem_range_embeddingₓ'. -/
 theorem mem_range_embedding (j : Fin n) : j ∈ Set.range (c.Embedding (c.index j)) :=
   by
@@ -546,7 +546,7 @@ theorem mem_range_embedding (j : Fin n) : j ∈ Set.range (c.Embedding (c.index
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.Mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.hasMem.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i)))) (Eq.{1} (Fin (Composition.length n c)) i (Composition.index n c j))
 but is expected to have type
-  forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c i)))) (Eq.{1} (Fin (Composition.length n c)) i (Composition.index n c j))
+  forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c i)))) (Eq.{1} (Fin (Composition.length n c)) i (Composition.index n c j))
 Case conversion may be inaccurate. Consider using '#align composition.mem_range_embedding_iff' Composition.mem_range_embedding_iff'ₓ'. -/
 theorem mem_range_embedding_iff' {j : Fin n} {i : Fin c.length} :
     j ∈ Set.range (c.Embedding i) ↔ i = c.index j :=
@@ -564,7 +564,7 @@ theorem mem_range_embedding_iff' {j : Fin n} {i : Fin c.length} :
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} (Fin (Composition.length n c)) (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)) i
 but is expected to have type
-  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} (Fin (Composition.length n c)) (Composition.index n c (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c i) j)) i
+  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} (Fin (Composition.length n c)) (Composition.index n c (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c i) j)) i
 Case conversion may be inaccurate. Consider using '#align composition.index_embedding Composition.index_embeddingₓ'. -/
 theorem index_embedding (i : Fin c.length) (j : Fin (c.blocksFun i)) :
     c.index (c.Embedding i j) = i := by
@@ -577,7 +577,7 @@ theorem index_embedding (i : Fin c.length) (j : Fin (c.blocksFun i)) :
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)))) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)))) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)))) Nat (coeBase.{1, 1} (Fin (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)))) Nat (Fin.coeToNat (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j))))))) (Composition.invEmbedding n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.blocksFun n c i)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (coeBase.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (Fin.coeToNat (Composition.blocksFun n c i))))) j)
 but is expected to have type
-  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat (Fin.val (Composition.blocksFun n c (Composition.index n c (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (a : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c i) j))) (Composition.invEmbedding n c (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c i) j))) (Fin.val (Composition.blocksFun n c i) j)
+  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat (Fin.val (Composition.blocksFun n c (Composition.index n c (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (a : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c i) j))) (Composition.invEmbedding n c (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n c i) j))) (Fin.val (Composition.blocksFun n c i) j)
 Case conversion may be inaccurate. Consider using '#align composition.inv_embedding_comp Composition.invEmbedding_compₓ'. -/
 theorem invEmbedding_comp (i : Fin c.length) (j : Fin (c.blocksFun i)) :
     (c.invEmbedding (c.Embedding i j) : ℕ) = j := by
@@ -680,7 +680,7 @@ theorem ones_sizeUpTo (n : ℕ) (i : ℕ) : (ones n).sizeUpTo i = min i n := by
 lean 3 declaration is
   forall {n : Nat} (i : Fin (Composition.length n (Composition.ones n))) (h : LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.blocksFun n (Composition.ones n) i)), Eq.{1} (Fin n) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (Fin.hasLe (Composition.blocksFun n (Composition.ones n) i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin.hasLe (Composition.blocksFun n (Composition.ones n) i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n (Composition.ones n) i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin.hasLe (Composition.blocksFun n (Composition.ones n) i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n (Composition.ones n) i) (Fin.mk (Composition.blocksFun n (Composition.ones n) i) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) h)) (Fin.mk n ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n (Composition.ones n))) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (coeBase.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (Fin.coeToNat (Composition.length n (Composition.ones n)))))) i) (lt_of_lt_of_le.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n (Composition.ones n))) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (coeBase.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (Fin.coeToNat (Composition.length n (Composition.ones n)))))) i) (Composition.length n (Composition.ones n)) n (Fin.property (Composition.length n (Composition.ones n)) i) (Composition.length_le n (Composition.ones n))))
 but is expected to have type
-  forall {n : Nat} (i : Fin (Composition.length n (Composition.ones n))) (h : LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Composition.blocksFun n (Composition.ones n) i)), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n (Composition.ones n) i)) => Fin n) (Fin.mk (Composition.blocksFun n (Composition.ones n) i) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) h)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (fun (_x : Fin (Composition.blocksFun n (Composition.ones n) i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n (Composition.ones n) i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.ones n) i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.ones n) i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.ones n) i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n (Composition.ones n) i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n (Composition.ones n) i)) => LE.le.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n (Composition.ones n) i) (Fin.mk (Composition.blocksFun n (Composition.ones n) i) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) h)) (Fin.mk n (Fin.val (Composition.length n (Composition.ones n)) i) (lt_of_lt_of_le.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (Fin.val (Composition.length n (Composition.ones n)) i) (Composition.length n (Composition.ones n)) n (Fin.isLt (Composition.length n (Composition.ones n)) i) (Composition.length_le n (Composition.ones n))))
+  forall {n : Nat} (i : Fin (Composition.length n (Composition.ones n))) (h : LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Composition.blocksFun n (Composition.ones n) i)), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n (Composition.ones n) i)) => Fin n) (Fin.mk (Composition.blocksFun n (Composition.ones n) i) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) h)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (fun (_x : Fin (Composition.blocksFun n (Composition.ones n) i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n (Composition.ones n) i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.ones n) i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.ones n) i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.ones n) i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n (Composition.ones n) i)) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n (Composition.ones n) i)) => LE.le.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n (Composition.ones n) i) (Fin.mk (Composition.blocksFun n (Composition.ones n) i) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) h)) (Fin.mk n (Fin.val (Composition.length n (Composition.ones n)) i) (lt_of_lt_of_le.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (Fin.val (Composition.length n (Composition.ones n)) i) (Composition.length n (Composition.ones n)) n (Fin.isLt (Composition.length n (Composition.ones n)) i) (Composition.length_le n (Composition.ones n))))
 Case conversion may be inaccurate. Consider using '#align composition.ones_embedding Composition.ones_embeddingₓ'. -/
 @[simp]
 theorem ones_embedding (i : Fin (ones n).length) (h : 0 < (ones n).blocksFun i) :
@@ -783,7 +783,7 @@ theorem single_blocksFun {n : ℕ} (h : 0 < n) (i : Fin (single n h).length) :
 lean 3 declaration is
   forall {n : Nat} (h : LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) (i : Fin n), Eq.{1} (Fin n) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin n) (Fin.hasLe (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin.hasLe (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial))))))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin.hasLe (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial))))))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial))))) i) i
 but is expected to have type
-  forall {n : Nat} (h : LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) (i : Fin n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => Fin n) i) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (fun (_x : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instDistribLattice.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instDistribLattice.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => LE.le.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))) i) i
+  forall {n : Nat} (h : LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) (i : Fin n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => Fin n) i) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (fun (_x : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instDistribLattice.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instDistribLattice.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => LE.le.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (Composition.embedding n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))) i) i
 Case conversion may be inaccurate. Consider using '#align composition.single_embedding Composition.single_embeddingₓ'. -/
 @[simp]
 theorem single_embedding {n : ℕ} (h : 0 < n) (i : Fin n) :
@@ -1147,7 +1147,7 @@ def boundary : Fin c.boundaries.card ↪o Fin (n + 1) :=
 lean 3 declaration is
   forall {n : Nat} (c : CompositionAsSet n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) => (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (CompositionAsSet.card_boundaries_pos n c))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne)) (NeZero.succ n)))))
 but is expected to have type
-  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ n)))
+  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ n)))
 Case conversion may be inaccurate. Consider using '#align composition_as_set.boundary_zero CompositionAsSet.boundary_zeroₓ'. -/
 @[simp]
 theorem boundary_zero : (c.boundary ⟨0, c.card_boundaries_pos⟩ : Fin (n + 1)) = 0 :=
@@ -1160,7 +1160,7 @@ theorem boundary_zero : (c.boundary ⟨0, c.card_boundaries_pos⟩ : Fin (n + 1)
 lean 3 declaration is
   forall {n : Nat} (c : CompositionAsSet n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) => (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (Fin.last n)
 but is expected to have type
-  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (Fin.last n)
+  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (Fin.last n)
 Case conversion may be inaccurate. Consider using '#align composition_as_set.boundary_length CompositionAsSet.boundary_lengthₓ'. -/
 @[simp]
 theorem boundary_length : c.boundary ⟨c.length, c.length_lt_card_boundaries⟩ = Fin.last n :=
@@ -1202,7 +1202,7 @@ theorem blocks_length : c.blocks.length = c.length :=
 lean 3 declaration is
   forall {n : Nat} (c : CompositionAsSet n) {i : Nat} (h : LT.lt.{0} Nat Nat.hasLt i (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))), Eq.{1} Nat (List.sum.{0} Nat Nat.hasAdd Nat.hasZero (List.take.{0} Nat i (CompositionAsSet.blocks n c))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (HasLiftT.mk.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (CoeTCₓ.coe.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (coeBase.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (Fin.coeToNat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) => (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) i h)))
 but is expected to have type
-  forall {n : Nat} (c : CompositionAsSet n) {i : Nat} (h : LT.lt.{0} Nat instLTNat i (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))), Eq.{1} Nat (List.sum.{0} Nat instAddNat (LinearOrderedCommMonoidWithZero.toZero.{0} Nat Nat.linearOrderedCommMonoidWithZero) (List.take.{0} Nat i (CompositionAsSet.blocks n c))) (Fin.val (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) i h)))
+  forall {n : Nat} (c : CompositionAsSet n) {i : Nat} (h : LT.lt.{0} Nat instLTNat i (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))), Eq.{1} Nat (List.sum.{0} Nat instAddNat (LinearOrderedCommMonoidWithZero.toZero.{0} Nat Nat.linearOrderedCommMonoidWithZero) (List.take.{0} Nat i (CompositionAsSet.blocks n c))) (Fin.val (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.684 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.682 x._@.Mathlib.Order.Hom.Basic._hyg.684) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.699 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.697 x._@.Mathlib.Order.Hom.Basic._hyg.699))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) i h)))
 Case conversion may be inaccurate. Consider using '#align composition_as_set.blocks_partial_sum CompositionAsSet.blocks_partial_sumₓ'. -/
 theorem blocks_partial_sum {i : ℕ} (h : i < c.boundaries.card) :
     (c.blocks.take i).Sum = c.boundary ⟨i, h⟩ :=
Diff
@@ -295,7 +295,7 @@ theorem monotone_sizeUpTo : Monotone c.sizeUpTo :=
 
 /- warning: composition.boundary -> Composition.boundary is a dubious translation:
 lean 3 declaration is
-  forall {n : Nat} (c : Composition n), OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))
+  forall {n : Nat} (c : Composition n), OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))
 but is expected to have type
   forall {n : Nat} (c : Composition n), OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
 Case conversion may be inaccurate. Consider using '#align composition.boundary Composition.boundaryₓ'. -/
@@ -309,7 +309,7 @@ def boundary : Fin (c.length + 1) ↪o Fin (n + 1) :=
 
 /- warning: composition.boundary_zero -> Composition.boundary_zero is a dubious translation:
 lean 3 declaration is
-  forall {n : Nat} (c : Composition n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Composition.boundary n c) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne)) (NeZero.succ (Composition.length n c))))))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne)) (NeZero.succ n)))))
+  forall {n : Nat} (c : Composition n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Composition.boundary n c) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne)) (NeZero.succ (Composition.length n c))))))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne)) (NeZero.succ n)))))
 but is expected to have type
   forall {n : Nat} (c : Composition n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.boundary n c) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ n)))
 Case conversion may be inaccurate. Consider using '#align composition.boundary_zero Composition.boundary_zeroₓ'. -/
@@ -319,7 +319,7 @@ theorem boundary_zero : c.boundary 0 = 0 := by simp [boundary, Fin.ext_iff]
 
 /- warning: composition.boundary_last -> Composition.boundary_last is a dubious translation:
 lean 3 declaration is
-  forall {n : Nat} (c : Composition n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Composition.boundary n c) (Fin.last (Composition.length n c))) (Fin.last n)
+  forall {n : Nat} (c : Composition n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Composition.boundary n c) (Fin.last (Composition.length n c))) (Fin.last n)
 but is expected to have type
   forall {n : Nat} (c : Composition n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.last (Composition.length n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.boundary n c) (Fin.last (Composition.length n c))) (Fin.last n)
 Case conversion may be inaccurate. Consider using '#align composition.boundary_last Composition.boundary_lastₓ'. -/
@@ -361,7 +361,7 @@ def toCompositionAsSet : CompositionAsSet n
 
 /- warning: composition.order_emb_of_fin_boundaries -> Composition.orderEmbOfFin_boundaries is a dubious translation:
 lean 3 declaration is
-  forall {n : Nat} (c : Composition n), Eq.{1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (Finset.orderEmbOfFin.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Composition.boundaries n c) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (Composition.card_boundaries_eq_succ_length n c)) (Composition.boundary n c)
+  forall {n : Nat} (c : Composition n), Eq.{1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (Finset.orderEmbOfFin.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Composition.boundaries n c) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))) (Composition.card_boundaries_eq_succ_length n c)) (Composition.boundary n c)
 but is expected to have type
   forall {n : Nat} (c : Composition n), Eq.{1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))))))) (Finset.orderEmbOfFin.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Composition.boundaries n c) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (Composition.card_boundaries_eq_succ_length n c)) (Composition.boundary n c)
 Case conversion may be inaccurate. Consider using '#align composition.order_emb_of_fin_boundaries Composition.orderEmbOfFin_boundariesₓ'. -/
@@ -1134,7 +1134,7 @@ theorem lt_length' (i : Fin c.length) : (i : ℕ) < c.boundaries.card :=
 
 /- warning: composition_as_set.boundary -> CompositionAsSet.boundary is a dubious translation:
 lean 3 declaration is
-  forall {n : Nat} (c : CompositionAsSet n), OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))
+  forall {n : Nat} (c : CompositionAsSet n), OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))
 but is expected to have type
   forall {n : Nat} (c : CompositionAsSet n), OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
 Case conversion may be inaccurate. Consider using '#align composition_as_set.boundary CompositionAsSet.boundaryₓ'. -/
@@ -1145,7 +1145,7 @@ def boundary : Fin c.boundaries.card ↪o Fin (n + 1) :=
 
 /- warning: composition_as_set.boundary_zero -> CompositionAsSet.boundary_zero is a dubious translation:
 lean 3 declaration is
-  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) => (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (CompositionAsSet.card_boundaries_pos n c))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne)) (NeZero.succ n)))))
+  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) => (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (CompositionAsSet.card_boundaries_pos n c))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne)) (NeZero.succ n)))))
 but is expected to have type
   forall {n : Nat} (c : CompositionAsSet n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ n)))
 Case conversion may be inaccurate. Consider using '#align composition_as_set.boundary_zero CompositionAsSet.boundary_zeroₓ'. -/
@@ -1158,7 +1158,7 @@ theorem boundary_zero : (c.boundary ⟨0, c.card_boundaries_pos⟩ : Fin (n + 1)
 
 /- warning: composition_as_set.boundary_length -> CompositionAsSet.boundary_length is a dubious translation:
 lean 3 declaration is
-  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) => (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (Fin.last n)
+  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) => (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (Fin.last n)
 but is expected to have type
   forall {n : Nat} (c : CompositionAsSet n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (Fin.last n)
 Case conversion may be inaccurate. Consider using '#align composition_as_set.boundary_length CompositionAsSet.boundary_lengthₓ'. -/
@@ -1200,7 +1200,7 @@ theorem blocks_length : c.blocks.length = c.length :=
 
 /- warning: composition_as_set.blocks_partial_sum -> CompositionAsSet.blocks_partial_sum is a dubious translation:
 lean 3 declaration is
-  forall {n : Nat} (c : CompositionAsSet n) {i : Nat} (h : LT.lt.{0} Nat Nat.hasLt i (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))), Eq.{1} Nat (List.sum.{0} Nat Nat.hasAdd Nat.hasZero (List.take.{0} Nat i (CompositionAsSet.blocks n c))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (HasLiftT.mk.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (CoeTCₓ.coe.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (coeBase.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (Fin.coeToNat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) => (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) i h)))
+  forall {n : Nat} (c : CompositionAsSet n) {i : Nat} (h : LT.lt.{0} Nat Nat.hasLt i (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))), Eq.{1} Nat (List.sum.{0} Nat Nat.hasAdd Nat.hasZero (List.take.{0} Nat i (CompositionAsSet.blocks n c))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (HasLiftT.mk.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (CoeTCₓ.coe.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (coeBase.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (Fin.coeToNat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) => (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toHasLe.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) i h)))
 but is expected to have type
   forall {n : Nat} (c : CompositionAsSet n) {i : Nat} (h : LT.lt.{0} Nat instLTNat i (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))), Eq.{1} Nat (List.sum.{0} Nat instAddNat (LinearOrderedCommMonoidWithZero.toZero.{0} Nat Nat.linearOrderedCommMonoidWithZero) (List.take.{0} Nat i (CompositionAsSet.blocks n c))) (Fin.val (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) i h)))
 Case conversion may be inaccurate. Consider using '#align composition_as_set.blocks_partial_sum CompositionAsSet.blocks_partial_sumₓ'. -/
Diff
@@ -311,7 +311,7 @@ def boundary : Fin (c.length + 1) ↪o Fin (n + 1) :=
 lean 3 declaration is
   forall {n : Nat} (c : Composition n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Composition.boundary n c) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne)) (NeZero.succ (Composition.length n c))))))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne)) (NeZero.succ n)))))
 but is expected to have type
-  forall {n : Nat} (c : Composition n), Eq.{1} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.boundary n c) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ n)))
+  forall {n : Nat} (c : Composition n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.boundary n c) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ n)))
 Case conversion may be inaccurate. Consider using '#align composition.boundary_zero Composition.boundary_zeroₓ'. -/
 @[simp]
 theorem boundary_zero : c.boundary 0 = 0 := by simp [boundary, Fin.ext_iff]
@@ -321,7 +321,7 @@ theorem boundary_zero : c.boundary 0 = 0 := by simp [boundary, Fin.ext_iff]
 lean 3 declaration is
   forall {n : Nat} (c : Composition n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Composition.boundary n c) (Fin.last (Composition.length n c))) (Fin.last n)
 but is expected to have type
-  forall {n : Nat} (c : Composition n), Eq.{1} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.last (Composition.length n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.boundary n c) (Fin.last (Composition.length n c))) (Fin.last n)
+  forall {n : Nat} (c : Composition n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.last (Composition.length n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instDistribLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.boundary n c) (Fin.last (Composition.length n c))) (Fin.last n)
 Case conversion may be inaccurate. Consider using '#align composition.boundary_last Composition.boundary_lastₓ'. -/
 @[simp]
 theorem boundary_last : c.boundary (Fin.last c.length) = Fin.last n := by
@@ -392,7 +392,7 @@ def embedding (i : Fin c.length) : Fin (c.blocksFun i) ↪o Fin n :=
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin n) Nat (HasLiftT.mk.{1, 1} (Fin n) Nat (CoeTCₓ.coe.{1, 1} (Fin n) Nat (coeBase.{1, 1} (Fin n) Nat (Fin.coeToNat n)))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.sizeUpTo n c ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n c)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n c)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n c)) Nat (coeBase.{1, 1} (Fin (Composition.length n c)) Nat (Fin.coeToNat (Composition.length n c))))) i)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.blocksFun n c i)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (coeBase.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (Fin.coeToNat (Composition.blocksFun n c i))))) j))
 but is expected to have type
-  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat (Fin.val n (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c i) j)) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.sizeUpTo n c (Fin.val (Composition.length n c) i)) (Fin.val (Composition.blocksFun n c i) j))
+  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat (Fin.val n (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c i) j)) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.sizeUpTo n c (Fin.val (Composition.length n c) i)) (Fin.val (Composition.blocksFun n c i) j))
 Case conversion may be inaccurate. Consider using '#align composition.coe_embedding Composition.coe_embeddingₓ'. -/
 @[simp]
 theorem coe_embedding (i : Fin c.length) (j : Fin (c.blocksFun i)) :
@@ -470,7 +470,7 @@ theorem coe_invEmbedding (j : Fin n) : (c.invEmbedding j : ℕ) = j - c.sizeUpTo
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) (j : Fin n), Eq.{1} (Fin n) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j)))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c (Composition.index n c j))) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j)))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c (Composition.index n c j)) (Composition.invEmbedding n c j)) j
 but is expected to have type
-  forall {n : Nat} (c : Composition n) (j : Fin n), Eq.{1} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) (Composition.invEmbedding n c j)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (fun (_x : Fin (Composition.blocksFun n c (Composition.index n c j))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c (Composition.index n c j))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c (Composition.index n c j))) => LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c (Composition.index n c j))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c (Composition.index n c j))) => LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c (Composition.index n c j)) (Composition.invEmbedding n c j)) j
+  forall {n : Nat} (c : Composition n) (j : Fin n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) (Composition.invEmbedding n c j)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (fun (_x : Fin (Composition.blocksFun n c (Composition.index n c j))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instDistribLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j)))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instDistribLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j))))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c (Composition.index n c j))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c (Composition.index n c j))) => LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c (Composition.index n c j)) (Composition.invEmbedding n c j)) j
 Case conversion may be inaccurate. Consider using '#align composition.embedding_comp_inv Composition.embedding_comp_invₓ'. -/
 theorem embedding_comp_inv (j : Fin n) : c.Embedding (c.index j) (c.invEmbedding j) = j :=
   by
@@ -482,7 +482,7 @@ theorem embedding_comp_inv (j : Fin n) : c.Embedding (c.index j) (c.invEmbedding
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.Mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.hasMem.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i)))) (And (LE.le.{0} Nat Nat.hasLe (Composition.sizeUpTo n c ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n c)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n c)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n c)) Nat (coeBase.{1, 1} (Fin (Composition.length n c)) Nat (Fin.coeToNat (Composition.length n c))))) i)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin n) Nat (HasLiftT.mk.{1, 1} (Fin n) Nat (CoeTCₓ.coe.{1, 1} (Fin n) Nat (coeBase.{1, 1} (Fin n) Nat (Fin.coeToNat n)))) j)) (LT.lt.{0} Nat Nat.hasLt ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin n) Nat (HasLiftT.mk.{1, 1} (Fin n) Nat (CoeTCₓ.coe.{1, 1} (Fin n) Nat (coeBase.{1, 1} (Fin n) Nat (Fin.coeToNat n)))) j) (Composition.sizeUpTo n c (Nat.succ ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n c)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n c)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n c)) Nat (coeBase.{1, 1} (Fin (Composition.length n c)) Nat (Fin.coeToNat (Composition.length n c))))) i)))))
 but is expected to have type
-  forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c i)))) (And (LE.le.{0} Nat instLENat (Composition.sizeUpTo n c (Fin.val (Composition.length n c) i)) (Fin.val n j)) (LT.lt.{0} Nat instLTNat (Fin.val n j) (Composition.sizeUpTo n c (Nat.succ (Fin.val (Composition.length n c) i)))))
+  forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c i)))) (And (LE.le.{0} Nat instLENat (Composition.sizeUpTo n c (Fin.val (Composition.length n c) i)) (Fin.val n j)) (LT.lt.{0} Nat instLTNat (Fin.val n j) (Composition.sizeUpTo n c (Nat.succ (Fin.val (Composition.length n c) i)))))
 Case conversion may be inaccurate. Consider using '#align composition.mem_range_embedding_iff Composition.mem_range_embedding_iffₓ'. -/
 theorem mem_range_embedding_iff {j : Fin n} {i : Fin c.length} :
     j ∈ Set.range (c.Embedding i) ↔ c.sizeUpTo i ≤ j ∧ (j : ℕ) < c.sizeUpTo (i : ℕ).succ :=
@@ -508,7 +508,7 @@ theorem mem_range_embedding_iff {j : Fin n} {i : Fin c.length} :
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) {i₁ : Fin (Composition.length n c)} {i₂ : Fin (Composition.length n c)}, (Ne.{1} (Fin (Composition.length n c)) i₁ i₂) -> (Disjoint.{0} (Set.{0} (Fin n)) (CompleteSemilatticeInf.toPartialOrder.{0} (Set.{0} (Fin n)) (CompleteLattice.toCompleteSemilatticeInf.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.completeBooleanAlgebra.{0} (Fin n))))))) (GeneralizedBooleanAlgebra.toOrderBot.{0} (Set.{0} (Fin n)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{0} (Set.{0} (Fin n)) (Set.booleanAlgebra.{0} (Fin n)))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₁)) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i₁)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i₁)) (Fin.hasLe (Composition.blocksFun n c i₁))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i₁)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i₁)) (Fin.hasLe (Composition.blocksFun n c i₁))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i₁))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₂)) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i₂)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i₂)) (Fin.hasLe (Composition.blocksFun n c i₂))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i₂)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i₂)) (Fin.hasLe (Composition.blocksFun n c i₂))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i₂))))
 but is expected to have type
-  forall {n : Nat} (c : Composition n) {i₁ : Fin (Composition.length n c)} {i₂ : Fin (Composition.length n c)}, (Ne.{1} (Fin (Composition.length n c)) i₁ i₂) -> (Disjoint.{0} (Set.{0} (Fin n)) (CompleteSemilatticeInf.toPartialOrder.{0} (Set.{0} (Fin n)) (CompleteLattice.toCompleteSemilatticeInf.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))) (BoundedOrder.toOrderBot.{0} (Set.{0} (Fin n)) (Preorder.toLE.{0} (Set.{0} (Fin n)) (PartialOrder.toPreorder.{0} (Set.{0} (Fin n)) (CompleteSemilatticeInf.toPartialOrder.{0} (Set.{0} (Fin n)) (CompleteLattice.toCompleteSemilatticeInf.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))))) (CompleteLattice.toBoundedOrder.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₁)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (fun (_x : Fin (Composition.blocksFun n c i₁)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c i₁)) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i₁)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i₁)) => LE.le.{0} (Fin (Composition.blocksFun n c i₁)) (instLEFin (Composition.blocksFun n c i₁)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i₁)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i₁)) => LE.le.{0} (Fin (Composition.blocksFun n c i₁)) (instLEFin (Composition.blocksFun n c i₁)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c i₁))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₂)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (fun (_x : Fin (Composition.blocksFun n c i₂)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c i₂)) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i₂)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i₂)) => LE.le.{0} (Fin (Composition.blocksFun n c i₂)) (instLEFin (Composition.blocksFun n c i₂)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i₂)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i₂)) => LE.le.{0} (Fin (Composition.blocksFun n c i₂)) (instLEFin (Composition.blocksFun n c i₂)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c i₂))))
+  forall {n : Nat} (c : Composition n) {i₁ : Fin (Composition.length n c)} {i₂ : Fin (Composition.length n c)}, (Ne.{1} (Fin (Composition.length n c)) i₁ i₂) -> (Disjoint.{0} (Set.{0} (Fin n)) (CompleteSemilatticeInf.toPartialOrder.{0} (Set.{0} (Fin n)) (CompleteLattice.toCompleteSemilatticeInf.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))) (BoundedOrder.toOrderBot.{0} (Set.{0} (Fin n)) (Preorder.toLE.{0} (Set.{0} (Fin n)) (PartialOrder.toPreorder.{0} (Set.{0} (Fin n)) (CompleteSemilatticeInf.toPartialOrder.{0} (Set.{0} (Fin n)) (CompleteLattice.toCompleteSemilatticeInf.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))))) (CompleteLattice.toBoundedOrder.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₁)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (fun (_x : Fin (Composition.blocksFun n c i₁)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i₁)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i₁)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i₁)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i₁)) (Fin.instLinearOrderFin (Composition.blocksFun n c i₁))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i₁)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i₁)) (Fin.instLinearOrderFin (Composition.blocksFun n c i₁)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i₁)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i₁)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i₁)) => LE.le.{0} (Fin (Composition.blocksFun n c i₁)) (instLEFin (Composition.blocksFun n c i₁)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c i₁))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₂)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (fun (_x : Fin (Composition.blocksFun n c i₂)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i₂)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i₂)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i₂)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i₂)) (Fin.instLinearOrderFin (Composition.blocksFun n c i₂))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i₂)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i₂)) (Fin.instLinearOrderFin (Composition.blocksFun n c i₂)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i₂)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i₂)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i₂)) => LE.le.{0} (Fin (Composition.blocksFun n c i₂)) (instLEFin (Composition.blocksFun n c i₂)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c i₂))))
 Case conversion may be inaccurate. Consider using '#align composition.disjoint_range Composition.disjoint_rangeₓ'. -/
 /-- The embeddings of different blocks of a composition are disjoint. -/
 theorem disjoint_range {i₁ i₂ : Fin c.length} (h : i₁ ≠ i₂) :
@@ -533,7 +533,7 @@ theorem disjoint_range {i₁ i₂ : Fin c.length} (h : i₁ ≠ i₂) :
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) (j : Fin n), Membership.Mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.hasMem.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c (Composition.index n c j))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j)))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c (Composition.index n c j))) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j)))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c (Composition.index n c j))))
 but is expected to have type
-  forall {n : Nat} (c : Composition n) (j : Fin n), Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c (Composition.index n c j))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (fun (_x : Fin (Composition.blocksFun n c (Composition.index n c j))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c (Composition.index n c j))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c (Composition.index n c j))) => LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c (Composition.index n c j))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c (Composition.index n c j))) => LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c (Composition.index n c j))))
+  forall {n : Nat} (c : Composition n) (j : Fin n), Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c (Composition.index n c j))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (fun (_x : Fin (Composition.blocksFun n c (Composition.index n c j))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instDistribLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j)))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instDistribLattice.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j))))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c (Composition.index n c j))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c (Composition.index n c j))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c (Composition.index n c j))) => LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c (Composition.index n c j))))
 Case conversion may be inaccurate. Consider using '#align composition.mem_range_embedding Composition.mem_range_embeddingₓ'. -/
 theorem mem_range_embedding (j : Fin n) : j ∈ Set.range (c.Embedding (c.index j)) :=
   by
@@ -546,7 +546,7 @@ theorem mem_range_embedding (j : Fin n) : j ∈ Set.range (c.Embedding (c.index
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.Mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.hasMem.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i)))) (Eq.{1} (Fin (Composition.length n c)) i (Composition.index n c j))
 but is expected to have type
-  forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c i)))) (Eq.{1} (Fin (Composition.length n c)) i (Composition.index n c j))
+  forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c i)))) (Eq.{1} (Fin (Composition.length n c)) i (Composition.index n c j))
 Case conversion may be inaccurate. Consider using '#align composition.mem_range_embedding_iff' Composition.mem_range_embedding_iff'ₓ'. -/
 theorem mem_range_embedding_iff' {j : Fin n} {i : Fin c.length} :
     j ∈ Set.range (c.Embedding i) ↔ i = c.index j :=
@@ -564,7 +564,7 @@ theorem mem_range_embedding_iff' {j : Fin n} {i : Fin c.length} :
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} (Fin (Composition.length n c)) (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)) i
 but is expected to have type
-  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} (Fin (Composition.length n c)) (Composition.index n c (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c i) j)) i
+  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} (Fin (Composition.length n c)) (Composition.index n c (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c i) j)) i
 Case conversion may be inaccurate. Consider using '#align composition.index_embedding Composition.index_embeddingₓ'. -/
 theorem index_embedding (i : Fin c.length) (j : Fin (c.blocksFun i)) :
     c.index (c.Embedding i j) = i := by
@@ -577,7 +577,7 @@ theorem index_embedding (i : Fin c.length) (j : Fin (c.blocksFun i)) :
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)))) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)))) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)))) Nat (coeBase.{1, 1} (Fin (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)))) Nat (Fin.coeToNat (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j))))))) (Composition.invEmbedding n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.blocksFun n c i)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (coeBase.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (Fin.coeToNat (Composition.blocksFun n c i))))) j)
 but is expected to have type
-  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat (Fin.val (Composition.blocksFun n c (Composition.index n c (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (a : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c i)) => Fin n) a) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c i) j))) (Composition.invEmbedding n c (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c i) j))) (Fin.val (Composition.blocksFun n c i) j)
+  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat (Fin.val (Composition.blocksFun n c (Composition.index n c (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (a : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) a) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c i) j))) (Composition.invEmbedding n c (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n c i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n c i)) (Fin.instLinearOrderFin (Composition.blocksFun n c i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n c i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n c i) j))) (Fin.val (Composition.blocksFun n c i) j)
 Case conversion may be inaccurate. Consider using '#align composition.inv_embedding_comp Composition.invEmbedding_compₓ'. -/
 theorem invEmbedding_comp (i : Fin c.length) (j : Fin (c.blocksFun i)) :
     (c.invEmbedding (c.Embedding i j) : ℕ) = j := by
@@ -680,7 +680,7 @@ theorem ones_sizeUpTo (n : ℕ) (i : ℕ) : (ones n).sizeUpTo i = min i n := by
 lean 3 declaration is
   forall {n : Nat} (i : Fin (Composition.length n (Composition.ones n))) (h : LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.blocksFun n (Composition.ones n) i)), Eq.{1} (Fin n) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (Fin.hasLe (Composition.blocksFun n (Composition.ones n) i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin.hasLe (Composition.blocksFun n (Composition.ones n) i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n (Composition.ones n) i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin.hasLe (Composition.blocksFun n (Composition.ones n) i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n (Composition.ones n) i) (Fin.mk (Composition.blocksFun n (Composition.ones n) i) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) h)) (Fin.mk n ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n (Composition.ones n))) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (coeBase.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (Fin.coeToNat (Composition.length n (Composition.ones n)))))) i) (lt_of_lt_of_le.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n (Composition.ones n))) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (coeBase.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (Fin.coeToNat (Composition.length n (Composition.ones n)))))) i) (Composition.length n (Composition.ones n)) n (Fin.property (Composition.length n (Composition.ones n)) i) (Composition.length_le n (Composition.ones n))))
 but is expected to have type
-  forall {n : Nat} (i : Fin (Composition.length n (Composition.ones n))) (h : LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Composition.blocksFun n (Composition.ones n) i)), Eq.{1} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n (Composition.ones n) i)) => Fin n) (Fin.mk (Composition.blocksFun n (Composition.ones n) i) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) h)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (fun (_x : Fin (Composition.blocksFun n (Composition.ones n) i)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n (Composition.ones n) i)) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n (Composition.ones n) i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n (Composition.ones n) i)) => LE.le.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n (Composition.ones n) i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n (Composition.ones n) i)) => LE.le.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n (Composition.ones n) i) (Fin.mk (Composition.blocksFun n (Composition.ones n) i) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) h)) (Fin.mk n (Fin.val (Composition.length n (Composition.ones n)) i) (lt_of_lt_of_le.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (Fin.val (Composition.length n (Composition.ones n)) i) (Composition.length n (Composition.ones n)) n (Fin.isLt (Composition.length n (Composition.ones n)) i) (Composition.length_le n (Composition.ones n))))
+  forall {n : Nat} (i : Fin (Composition.length n (Composition.ones n))) (h : LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Composition.blocksFun n (Composition.ones n) i)), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n (Composition.ones n) i)) => Fin n) (Fin.mk (Composition.blocksFun n (Composition.ones n) i) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) h)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (fun (_x : Fin (Composition.blocksFun n (Composition.ones n) i)) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n (Composition.ones n) i)) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.ones n) i))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (instDistribLattice.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.ones n) i)))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.ones n) i)) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n (Composition.ones n) i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n (Composition.ones n) i)) => LE.le.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n (Composition.ones n) i) (Fin.mk (Composition.blocksFun n (Composition.ones n) i) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) h)) (Fin.mk n (Fin.val (Composition.length n (Composition.ones n)) i) (lt_of_lt_of_le.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (Fin.val (Composition.length n (Composition.ones n)) i) (Composition.length n (Composition.ones n)) n (Fin.isLt (Composition.length n (Composition.ones n)) i) (Composition.length_le n (Composition.ones n))))
 Case conversion may be inaccurate. Consider using '#align composition.ones_embedding Composition.ones_embeddingₓ'. -/
 @[simp]
 theorem ones_embedding (i : Fin (ones n).length) (h : 0 < (ones n).blocksFun i) :
@@ -783,7 +783,7 @@ theorem single_blocksFun {n : ℕ} (h : 0 < n) (i : Fin (single n h).length) :
 lean 3 declaration is
   forall {n : Nat} (h : LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) (i : Fin n), Eq.{1} (Fin n) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin n) (Fin.hasLe (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin.hasLe (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial))))))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin.hasLe (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial))))))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial))))) i) i
 but is expected to have type
-  forall {n : Nat} (h : LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) (i : Fin n), Eq.{1} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => Fin n) i) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (fun (_x : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => LE.le.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => LE.le.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))) i) i
+  forall {n : Nat} (h : LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) (i : Fin n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => Fin n) i) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (fun (_x : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => Fin n) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (Lattice.toInf.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instDistribLattice.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))))))) (Lattice.toInf.{0} (Fin n) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n)))) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (DistribLattice.toLattice.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instDistribLattice.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (Fin.instLinearOrderFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (DistribLattice.toLattice.{0} (Fin n) (instDistribLattice.{0} (Fin n) (Fin.instLinearOrderFin n))) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => LE.le.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (Composition.embedding n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))) i) i
 Case conversion may be inaccurate. Consider using '#align composition.single_embedding Composition.single_embeddingₓ'. -/
 @[simp]
 theorem single_embedding {n : ℕ} (h : 0 < n) (i : Fin n) :
@@ -1147,7 +1147,7 @@ def boundary : Fin c.boundaries.card ↪o Fin (n + 1) :=
 lean 3 declaration is
   forall {n : Nat} (c : CompositionAsSet n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) => (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (CompositionAsSet.card_boundaries_pos n c))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne)) (NeZero.succ n)))))
 but is expected to have type
-  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ n)))
+  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ n)))
 Case conversion may be inaccurate. Consider using '#align composition_as_set.boundary_zero CompositionAsSet.boundary_zeroₓ'. -/
 @[simp]
 theorem boundary_zero : (c.boundary ⟨0, c.card_boundaries_pos⟩ : Fin (n + 1)) = 0 :=
@@ -1160,7 +1160,7 @@ theorem boundary_zero : (c.boundary ⟨0, c.card_boundaries_pos⟩ : Fin (n + 1)
 lean 3 declaration is
   forall {n : Nat} (c : CompositionAsSet n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) => (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (Fin.last n)
 but is expected to have type
-  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (Fin.last n)
+  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} ((fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (Fin.last n)
 Case conversion may be inaccurate. Consider using '#align composition_as_set.boundary_length CompositionAsSet.boundary_lengthₓ'. -/
 @[simp]
 theorem boundary_length : c.boundary ⟨c.length, c.length_lt_card_boundaries⟩ = Fin.last n :=
@@ -1202,7 +1202,7 @@ theorem blocks_length : c.blocks.length = c.length :=
 lean 3 declaration is
   forall {n : Nat} (c : CompositionAsSet n) {i : Nat} (h : LT.lt.{0} Nat Nat.hasLt i (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))), Eq.{1} Nat (List.sum.{0} Nat Nat.hasAdd Nat.hasZero (List.take.{0} Nat i (CompositionAsSet.blocks n c))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (HasLiftT.mk.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (CoeTCₓ.coe.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (coeBase.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (Fin.coeToNat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) => (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) i h)))
 but is expected to have type
-  forall {n : Nat} (c : CompositionAsSet n) {i : Nat} (h : LT.lt.{0} Nat instLTNat i (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))), Eq.{1} Nat (List.sum.{0} Nat instAddNat (LinearOrderedCommMonoidWithZero.toZero.{0} Nat Nat.linearOrderedCommMonoidWithZero) (List.take.{0} Nat i (CompositionAsSet.blocks n c))) (Fin.val (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) i h)))
+  forall {n : Nat} (c : CompositionAsSet n) {i : Nat} (h : LT.lt.{0} Nat instLTNat i (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))), Eq.{1} Nat (List.sum.{0} Nat instAddNat (LinearOrderedCommMonoidWithZero.toZero.{0} Nat Nat.linearOrderedCommMonoidWithZero) (List.take.{0} Nat i (CompositionAsSet.blocks n c))) (Fin.val (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.Hom.Lattice._hyg.494 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (InfHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Lattice.toInf.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))))) (Lattice.toInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n)) (LatticeHomClass.toInfHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (DistribLattice.toLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instDistribLattice.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (OrderHomClass.toLatticeHomClass.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.instLinearOrderFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.instLatticeFinHAddNatInstHAddInstAddNatOfNat n) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) i h)))
 Case conversion may be inaccurate. Consider using '#align composition_as_set.blocks_partial_sum CompositionAsSet.blocks_partial_sumₓ'. -/
 theorem blocks_partial_sum {i : ℕ} (h : i < c.boundaries.card) :
     (c.blocks.take i).Sum = c.boundary ⟨i, h⟩ :=
Diff
@@ -311,7 +311,7 @@ def boundary : Fin (c.length + 1) ↪o Fin (n + 1) :=
 lean 3 declaration is
   forall {n : Nat} (c : Composition n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Composition.boundary n c) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (One.one.{0} Nat Nat.hasOne)) (NeZero.succ (Composition.length n c))))))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne)) (NeZero.succ n)))))
 but is expected to have type
-  forall {n : Nat} (c : Composition n), Eq.{1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (RelEmbedding.toEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (Composition.boundary n c)) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ n)))
+  forall {n : Nat} (c : Composition n), Eq.{1} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.boundary n c) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ (Composition.length n c))))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ n)))
 Case conversion may be inaccurate. Consider using '#align composition.boundary_zero Composition.boundary_zeroₓ'. -/
 @[simp]
 theorem boundary_zero : c.boundary 0 = 0 := by simp [boundary, Fin.ext_iff]
@@ -321,7 +321,7 @@ theorem boundary_zero : c.boundary 0 = 0 := by simp [boundary, Fin.ext_iff]
 lean 3 declaration is
   forall {n : Nat} (c : Composition n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) => (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (SemilatticeInf.toPartialOrder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Lattice.toSemilatticeInf.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LinearOrder.toLattice.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.linearOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (PartialOrder.toPreorder.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.partialOrder (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))))) (Composition.boundary n c) (Fin.last (Composition.length n c))) (Fin.last n)
 but is expected to have type
-  forall {n : Nat} (c : Composition n), Eq.{1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.last (Composition.length n c))) (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (RelEmbedding.toEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (Composition.boundary n c)) (Fin.last (Composition.length n c))) (Fin.last n)
+  forall {n : Nat} (c : Composition n), Eq.{1} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.last (Composition.length n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (_x : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.length n c) (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.boundary n c) (Fin.last (Composition.length n c))) (Fin.last n)
 Case conversion may be inaccurate. Consider using '#align composition.boundary_last Composition.boundary_lastₓ'. -/
 @[simp]
 theorem boundary_last : c.boundary (Fin.last c.length) = Fin.last n := by
@@ -392,7 +392,7 @@ def embedding (i : Fin c.length) : Fin (c.blocksFun i) ↪o Fin n :=
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin n) Nat (HasLiftT.mk.{1, 1} (Fin n) Nat (CoeTCₓ.coe.{1, 1} (Fin n) Nat (coeBase.{1, 1} (Fin n) Nat (Fin.coeToNat n)))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) (Composition.sizeUpTo n c ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n c)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n c)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n c)) Nat (coeBase.{1, 1} (Fin (Composition.length n c)) Nat (Fin.coeToNat (Composition.length n c))))) i)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.blocksFun n c i)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (coeBase.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (Fin.coeToNat (Composition.blocksFun n c i))))) j))
 but is expected to have type
-  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat (Fin.val n (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c i)) (Fin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c i)) (Fin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin (Composition.blocksFun n c i)) (Fin n))) (RelEmbedding.toEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (Composition.embedding n c i)) j)) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.sizeUpTo n c (Fin.val (Composition.length n c) i)) (Fin.val (Composition.blocksFun n c i) j))
+  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat (Fin.val n (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c i) j)) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) (Composition.sizeUpTo n c (Fin.val (Composition.length n c) i)) (Fin.val (Composition.blocksFun n c i) j))
 Case conversion may be inaccurate. Consider using '#align composition.coe_embedding Composition.coe_embeddingₓ'. -/
 @[simp]
 theorem coe_embedding (i : Fin c.length) (j : Fin (c.blocksFun i)) :
@@ -470,7 +470,7 @@ theorem coe_invEmbedding (j : Fin n) : (c.invEmbedding j : ℕ) = j - c.sizeUpTo
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) (j : Fin n), Eq.{1} (Fin n) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j)))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c (Composition.index n c j))) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j)))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c (Composition.index n c j)) (Composition.invEmbedding n c j)) j
 but is expected to have type
-  forall {n : Nat} (c : Composition n) (j : Fin n), Eq.{1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) (Composition.invEmbedding n c j)) (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (fun (_x : Fin (Composition.blocksFun n c (Composition.index n c j))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n))) (RelEmbedding.toEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c (Composition.index n c j))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c (Composition.index n c j))) => LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (Composition.embedding n c (Composition.index n c j))) (Composition.invEmbedding n c j)) j
+  forall {n : Nat} (c : Composition n) (j : Fin n), Eq.{1} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) (Composition.invEmbedding n c j)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (fun (_x : Fin (Composition.blocksFun n c (Composition.index n c j))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c (Composition.index n c j))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c (Composition.index n c j))) => LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c (Composition.index n c j))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c (Composition.index n c j))) => LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c (Composition.index n c j)) (Composition.invEmbedding n c j)) j
 Case conversion may be inaccurate. Consider using '#align composition.embedding_comp_inv Composition.embedding_comp_invₓ'. -/
 theorem embedding_comp_inv (j : Fin n) : c.Embedding (c.index j) (c.invEmbedding j) = j :=
   by
@@ -482,7 +482,7 @@ theorem embedding_comp_inv (j : Fin n) : c.Embedding (c.index j) (c.invEmbedding
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.Mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.hasMem.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i)))) (And (LE.le.{0} Nat Nat.hasLe (Composition.sizeUpTo n c ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n c)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n c)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n c)) Nat (coeBase.{1, 1} (Fin (Composition.length n c)) Nat (Fin.coeToNat (Composition.length n c))))) i)) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin n) Nat (HasLiftT.mk.{1, 1} (Fin n) Nat (CoeTCₓ.coe.{1, 1} (Fin n) Nat (coeBase.{1, 1} (Fin n) Nat (Fin.coeToNat n)))) j)) (LT.lt.{0} Nat Nat.hasLt ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin n) Nat (HasLiftT.mk.{1, 1} (Fin n) Nat (CoeTCₓ.coe.{1, 1} (Fin n) Nat (coeBase.{1, 1} (Fin n) Nat (Fin.coeToNat n)))) j) (Composition.sizeUpTo n c (Nat.succ ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n c)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n c)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n c)) Nat (coeBase.{1, 1} (Fin (Composition.length n c)) Nat (Fin.coeToNat (Composition.length n c))))) i)))))
 but is expected to have type
-  forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c i)) (Fin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c i)) (Fin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin (Composition.blocksFun n c i)) (Fin n))) (RelEmbedding.toEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (Composition.embedding n c i))))) (And (LE.le.{0} Nat instLENat (Composition.sizeUpTo n c (Fin.val (Composition.length n c) i)) (Fin.val n j)) (LT.lt.{0} Nat instLTNat (Fin.val n j) (Composition.sizeUpTo n c (Nat.succ (Fin.val (Composition.length n c) i)))))
+  forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c i)))) (And (LE.le.{0} Nat instLENat (Composition.sizeUpTo n c (Fin.val (Composition.length n c) i)) (Fin.val n j)) (LT.lt.{0} Nat instLTNat (Fin.val n j) (Composition.sizeUpTo n c (Nat.succ (Fin.val (Composition.length n c) i)))))
 Case conversion may be inaccurate. Consider using '#align composition.mem_range_embedding_iff Composition.mem_range_embedding_iffₓ'. -/
 theorem mem_range_embedding_iff {j : Fin n} {i : Fin c.length} :
     j ∈ Set.range (c.Embedding i) ↔ c.sizeUpTo i ≤ j ∧ (j : ℕ) < c.sizeUpTo (i : ℕ).succ :=
@@ -508,7 +508,7 @@ theorem mem_range_embedding_iff {j : Fin n} {i : Fin c.length} :
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) {i₁ : Fin (Composition.length n c)} {i₂ : Fin (Composition.length n c)}, (Ne.{1} (Fin (Composition.length n c)) i₁ i₂) -> (Disjoint.{0} (Set.{0} (Fin n)) (CompleteSemilatticeInf.toPartialOrder.{0} (Set.{0} (Fin n)) (CompleteLattice.toCompleteSemilatticeInf.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.completeBooleanAlgebra.{0} (Fin n))))))) (GeneralizedBooleanAlgebra.toOrderBot.{0} (Set.{0} (Fin n)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{0} (Set.{0} (Fin n)) (Set.booleanAlgebra.{0} (Fin n)))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₁)) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i₁)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i₁)) (Fin.hasLe (Composition.blocksFun n c i₁))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i₁)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i₁)) (Fin.hasLe (Composition.blocksFun n c i₁))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i₁))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₂)) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i₂)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i₂)) (Fin.hasLe (Composition.blocksFun n c i₂))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i₂)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i₂)) (Fin.hasLe (Composition.blocksFun n c i₂))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i₂))))
 but is expected to have type
-  forall {n : Nat} (c : Composition n) {i₁ : Fin (Composition.length n c)} {i₂ : Fin (Composition.length n c)}, (Ne.{1} (Fin (Composition.length n c)) i₁ i₂) -> (Disjoint.{0} (Set.{0} (Fin n)) (CompleteSemilatticeInf.toPartialOrder.{0} (Set.{0} (Fin n)) (CompleteLattice.toCompleteSemilatticeInf.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))) (BoundedOrder.toOrderBot.{0} (Set.{0} (Fin n)) (Preorder.toLE.{0} (Set.{0} (Fin n)) (PartialOrder.toPreorder.{0} (Set.{0} (Fin n)) (CompleteSemilatticeInf.toPartialOrder.{0} (Set.{0} (Fin n)) (CompleteLattice.toCompleteSemilatticeInf.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))))) (CompleteLattice.toBoundedOrder.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₁)) (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c i₁)) (Fin n)) (Fin (Composition.blocksFun n c i₁)) (fun (_x : Fin (Composition.blocksFun n c i₁)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Composition.blocksFun n c i₁)) => Fin n) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c i₁)) (Fin n)) (Fin (Composition.blocksFun n c i₁)) (Fin n) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin (Composition.blocksFun n c i₁)) (Fin n))) (RelEmbedding.toEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i₁)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i₁)) => LE.le.{0} (Fin (Composition.blocksFun n c i₁)) (instLEFin (Composition.blocksFun n c i₁)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (Composition.embedding n c i₁)))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₂)) (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c i₂)) (Fin n)) (Fin (Composition.blocksFun n c i₂)) (fun (_x : Fin (Composition.blocksFun n c i₂)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Composition.blocksFun n c i₂)) => Fin n) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c i₂)) (Fin n)) (Fin (Composition.blocksFun n c i₂)) (Fin n) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin (Composition.blocksFun n c i₂)) (Fin n))) (RelEmbedding.toEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i₂)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i₂)) => LE.le.{0} (Fin (Composition.blocksFun n c i₂)) (instLEFin (Composition.blocksFun n c i₂)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (Composition.embedding n c i₂)))))
+  forall {n : Nat} (c : Composition n) {i₁ : Fin (Composition.length n c)} {i₂ : Fin (Composition.length n c)}, (Ne.{1} (Fin (Composition.length n c)) i₁ i₂) -> (Disjoint.{0} (Set.{0} (Fin n)) (CompleteSemilatticeInf.toPartialOrder.{0} (Set.{0} (Fin n)) (CompleteLattice.toCompleteSemilatticeInf.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))) (BoundedOrder.toOrderBot.{0} (Set.{0} (Fin n)) (Preorder.toLE.{0} (Set.{0} (Fin n)) (PartialOrder.toPreorder.{0} (Set.{0} (Fin n)) (CompleteSemilatticeInf.toPartialOrder.{0} (Set.{0} (Fin n)) (CompleteLattice.toCompleteSemilatticeInf.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))))) (CompleteLattice.toBoundedOrder.{0} (Set.{0} (Fin n)) (Order.Coframe.toCompleteLattice.{0} (Set.{0} (Fin n)) (CompleteDistribLattice.toCoframe.{0} (Set.{0} (Fin n)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (Set.{0} (Fin n)) (Set.instCompleteBooleanAlgebraSet.{0} (Fin n))))))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₁)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (fun (_x : Fin (Composition.blocksFun n c i₁)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c i₁)) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (instLEFin (Composition.blocksFun n c i₁)) (instLEFin n)) (Fin (Composition.blocksFun n c i₁)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i₁)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i₁)) => LE.le.{0} (Fin (Composition.blocksFun n c i₁)) (instLEFin (Composition.blocksFun n c i₁)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₁)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i₁)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i₁)) => LE.le.{0} (Fin (Composition.blocksFun n c i₁)) (instLEFin (Composition.blocksFun n c i₁)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c i₁))) (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i₂)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (fun (_x : Fin (Composition.blocksFun n c i₂)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c i₂)) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (instLEFin (Composition.blocksFun n c i₂)) (instLEFin n)) (Fin (Composition.blocksFun n c i₂)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i₂)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i₂)) => LE.le.{0} (Fin (Composition.blocksFun n c i₂)) (instLEFin (Composition.blocksFun n c i₂)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i₂)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i₂)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i₂)) => LE.le.{0} (Fin (Composition.blocksFun n c i₂)) (instLEFin (Composition.blocksFun n c i₂)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c i₂))))
 Case conversion may be inaccurate. Consider using '#align composition.disjoint_range Composition.disjoint_rangeₓ'. -/
 /-- The embeddings of different blocks of a composition are disjoint. -/
 theorem disjoint_range {i₁ i₂ : Fin c.length} (h : i₁ ≠ i₂) :
@@ -533,7 +533,7 @@ theorem disjoint_range {i₁ i₂ : Fin c.length} (h : i₁ ≠ i₂) :
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) (j : Fin n), Membership.Mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.hasMem.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c (Composition.index n c j))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j)))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c (Composition.index n c j))) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin.hasLe (Composition.blocksFun n c (Composition.index n c j)))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c (Composition.index n c j))))
 but is expected to have type
-  forall {n : Nat} (c : Composition n) (j : Fin n), Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c (Composition.index n c j))) (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (fun (_x : Fin (Composition.blocksFun n c (Composition.index n c j))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n))) (RelEmbedding.toEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c (Composition.index n c j))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c (Composition.index n c j))) => LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (Composition.embedding n c (Composition.index n c j)))))
+  forall {n : Nat} (c : Composition n) (j : Fin n), Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c (Composition.index n c j))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (fun (_x : Fin (Composition.blocksFun n c (Composition.index n c j))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c (Composition.index n c j))) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin n)) (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c (Composition.index n c j))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c (Composition.index n c j))) => LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c (Composition.index n c j))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c (Composition.index n c j))) => LE.le.{0} (Fin (Composition.blocksFun n c (Composition.index n c j))) (instLEFin (Composition.blocksFun n c (Composition.index n c j))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c (Composition.index n c j))))
 Case conversion may be inaccurate. Consider using '#align composition.mem_range_embedding Composition.mem_range_embeddingₓ'. -/
 theorem mem_range_embedding (j : Fin n) : j ∈ Set.range (c.Embedding (c.index j)) :=
   by
@@ -546,7 +546,7 @@ theorem mem_range_embedding (j : Fin n) : j ∈ Set.range (c.Embedding (c.index
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.Mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.hasMem.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i)))) (Eq.{1} (Fin (Composition.length n c)) i (Composition.index n c j))
 but is expected to have type
-  forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c i)) (Fin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c i)) (Fin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin (Composition.blocksFun n c i)) (Fin n))) (RelEmbedding.toEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (Composition.embedding n c i))))) (Eq.{1} (Fin (Composition.length n c)) i (Composition.index n c j))
+  forall {n : Nat} (c : Composition n) {j : Fin n} {i : Fin (Composition.length n c)}, Iff (Membership.mem.{0, 0} (Fin n) (Set.{0} (Fin n)) (Set.instMembershipSet.{0} (Fin n)) j (Set.range.{0, 1} (Fin n) (Fin (Composition.blocksFun n c i)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c i)))) (Eq.{1} (Fin (Composition.length n c)) i (Composition.index n c j))
 Case conversion may be inaccurate. Consider using '#align composition.mem_range_embedding_iff' Composition.mem_range_embedding_iff'ₓ'. -/
 theorem mem_range_embedding_iff' {j : Fin n} {i : Fin c.length} :
     j ∈ Set.range (c.Embedding i) ↔ i = c.index j :=
@@ -564,7 +564,7 @@ theorem mem_range_embedding_iff' {j : Fin n} {i : Fin c.length} :
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} (Fin (Composition.length n c)) (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)) i
 but is expected to have type
-  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} (Fin (Composition.length n c)) (Composition.index n c (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c i)) (Fin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c i)) (Fin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin (Composition.blocksFun n c i)) (Fin n))) (RelEmbedding.toEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (Composition.embedding n c i)) j)) i
+  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} (Fin (Composition.length n c)) (Composition.index n c (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c i) j)) i
 Case conversion may be inaccurate. Consider using '#align composition.index_embedding Composition.index_embeddingₓ'. -/
 theorem index_embedding (i : Fin c.length) (j : Fin (c.blocksFun i)) :
     c.index (c.Embedding i j) = i := by
@@ -577,7 +577,7 @@ theorem index_embedding (i : Fin c.length) (j : Fin (c.blocksFun i)) :
 lean 3 declaration is
   forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)))) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)))) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)))) Nat (coeBase.{1, 1} (Fin (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j)))) Nat (Fin.coeToNat (Composition.blocksFun n c (Composition.index n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j))))))) (Composition.invEmbedding n c (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (Fin.hasLe (Composition.blocksFun n c i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n c i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n c i)) (Fin.hasLe (Composition.blocksFun n c i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n c i) j))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.blocksFun n c i)) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (coeBase.{1, 1} (Fin (Composition.blocksFun n c i)) Nat (Fin.coeToNat (Composition.blocksFun n c i))))) j)
 but is expected to have type
-  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat (Fin.val (Composition.blocksFun n c (Composition.index n c (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c i)) (Fin n)) (Fin (Composition.blocksFun n c i)) (fun (a : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Composition.blocksFun n c i)) => Fin n) a) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c i)) (Fin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin (Composition.blocksFun n c i)) (Fin n))) (RelEmbedding.toEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (Composition.embedding n c i)) j))) (Composition.invEmbedding n c (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c i)) (Fin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n c i)) (Fin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin (Composition.blocksFun n c i)) (Fin n))) (RelEmbedding.toEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (Composition.embedding n c i)) j))) (Fin.val (Composition.blocksFun n c i) j)
+  forall {n : Nat} (c : Composition n) (i : Fin (Composition.length n c)) (j : Fin (Composition.blocksFun n c i)), Eq.{1} Nat (Fin.val (Composition.blocksFun n c (Composition.index n c (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (a : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c i)) => Fin n) a) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c i) j))) (Composition.invEmbedding n c (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (fun (_x : Fin (Composition.blocksFun n c i)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n c i)) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (instLEFin (Composition.blocksFun n c i)) (instLEFin n)) (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n c i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n c i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n c i)) => LE.le.{0} (Fin (Composition.blocksFun n c i)) (instLEFin (Composition.blocksFun n c i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n c i) j))) (Fin.val (Composition.blocksFun n c i) j)
 Case conversion may be inaccurate. Consider using '#align composition.inv_embedding_comp Composition.invEmbedding_compₓ'. -/
 theorem invEmbedding_comp (i : Fin c.length) (j : Fin (c.blocksFun i)) :
     (c.invEmbedding (c.Embedding i j) : ℕ) = j := by
@@ -680,7 +680,7 @@ theorem ones_sizeUpTo (n : ℕ) (i : ℕ) : (ones n).sizeUpTo i = min i n := by
 lean 3 declaration is
   forall {n : Nat} (i : Fin (Composition.length n (Composition.ones n))) (h : LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.blocksFun n (Composition.ones n) i)), Eq.{1} (Fin n) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (Fin.hasLe (Composition.blocksFun n (Composition.ones n) i)) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin.hasLe (Composition.blocksFun n (Composition.ones n) i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n (Composition.ones n) i)) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin.hasLe (Composition.blocksFun n (Composition.ones n) i))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n (Composition.ones n) i) (Fin.mk (Composition.blocksFun n (Composition.ones n) i) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) h)) (Fin.mk n ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n (Composition.ones n))) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (coeBase.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (Fin.coeToNat (Composition.length n (Composition.ones n)))))) i) (lt_of_lt_of_le.{0} Nat (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (Composition.length n (Composition.ones n))) Nat (HasLiftT.mk.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (CoeTCₓ.coe.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (coeBase.{1, 1} (Fin (Composition.length n (Composition.ones n))) Nat (Fin.coeToNat (Composition.length n (Composition.ones n)))))) i) (Composition.length n (Composition.ones n)) n (Fin.property (Composition.length n (Composition.ones n)) i) (Composition.length_le n (Composition.ones n))))
 but is expected to have type
-  forall {n : Nat} (i : Fin (Composition.length n (Composition.ones n))) (h : LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Composition.blocksFun n (Composition.ones n) i)), Eq.{1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Composition.blocksFun n (Composition.ones n) i)) => Fin n) (Fin.mk (Composition.blocksFun n (Composition.ones n) i) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) h)) (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (fun (_x : Fin (Composition.blocksFun n (Composition.ones n) i)) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Composition.blocksFun n (Composition.ones n) i)) => Fin n) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n))) (RelEmbedding.toEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n (Composition.ones n) i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n (Composition.ones n) i)) => LE.le.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (Composition.embedding n (Composition.ones n) i)) (Fin.mk (Composition.blocksFun n (Composition.ones n) i) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) h)) (Fin.mk n (Fin.val (Composition.length n (Composition.ones n)) i) (lt_of_lt_of_le.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (Fin.val (Composition.length n (Composition.ones n)) i) (Composition.length n (Composition.ones n)) n (Fin.isLt (Composition.length n (Composition.ones n)) i) (Composition.length_le n (Composition.ones n))))
+  forall {n : Nat} (i : Fin (Composition.length n (Composition.ones n))) (h : LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (Composition.blocksFun n (Composition.ones n) i)), Eq.{1} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n (Composition.ones n) i)) => Fin n) (Fin.mk (Composition.blocksFun n (Composition.ones n) i) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) h)) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (fun (_x : Fin (Composition.blocksFun n (Composition.ones n) i)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n (Composition.ones n) i)) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n (Composition.ones n) i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n (Composition.ones n) i)) => LE.le.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n (Composition.ones n) i)) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n (Composition.ones n) i)) => LE.le.{0} (Fin (Composition.blocksFun n (Composition.ones n) i)) (instLEFin (Composition.blocksFun n (Composition.ones n) i)) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n (Composition.ones n) i) (Fin.mk (Composition.blocksFun n (Composition.ones n) i) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) h)) (Fin.mk n (Fin.val (Composition.length n (Composition.ones n)) i) (lt_of_lt_of_le.{0} Nat (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (Fin.val (Composition.length n (Composition.ones n)) i) (Composition.length n (Composition.ones n)) n (Fin.isLt (Composition.length n (Composition.ones n)) i) (Composition.length_le n (Composition.ones n))))
 Case conversion may be inaccurate. Consider using '#align composition.ones_embedding Composition.ones_embeddingₓ'. -/
 @[simp]
 theorem ones_embedding (i : Fin (ones n).length) (h : 0 < (ones n).blocksFun i) :
@@ -783,7 +783,7 @@ theorem single_blocksFun {n : ℕ} (h : 0 < n) (i : Fin (single n h).length) :
 lean 3 declaration is
   forall {n : Nat} (h : LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) n) (i : Fin n), Eq.{1} (Fin n) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin n) (Fin.hasLe (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin.hasLe n)) (fun (_x : RelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin.hasLe (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial))))))) (LE.le.{0} (Fin n) (Fin.hasLe n))) => (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) -> (Fin n)) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin n) (LE.le.{0} (Fin (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial)))))) (Fin.hasLe (Composition.blocksFun n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial))))))) (LE.le.{0} (Fin n) (Fin.hasLe n))) (Composition.embedding n (Composition.single n h) (Fin.mk (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Eq.subst.{1} Nat (fun (_x : Nat) => LT.lt.{0} Nat Nat.hasLt (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (Composition.length n (Composition.single n h))) (Composition.length n (Composition.single n h)) (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))) (Composition.single_length n h) (zero_lt_one.{0} Nat Nat.hasZero Nat.hasOne (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring)) (OrderedSemiring.zeroLEOneClass.{0} Nat Nat.orderedSemiring) (NeZero.one.{0} Nat (NonAssocSemiring.toMulZeroOneClass.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) Nat.nontrivial))))) i) i
 but is expected to have type
-  forall {n : Nat} (h : LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) (i : Fin n), Eq.{1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => Fin n) i) (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (fun (_x : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => Fin n) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n))) (RelEmbedding.toEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => LE.le.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (Composition.embedding n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) i) i
+  forall {n : Nat} (h : LT.lt.{0} Nat instLTNat (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) n) (i : Fin n), Eq.{1} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => Fin n) i) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (fun (_x : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => Fin n) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin n)) (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => LE.le.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (Fin n) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) => LE.le.{0} (Fin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) (instLEFin (Composition.blocksFun n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))))))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin n) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin n) => LE.le.{0} (Fin n) (instLEFin n) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (Composition.embedding n (Composition.single n h) (OfNat.ofNat.{0} (Fin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (Fin.instOfNatFin (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)) 0 (NeZero.succ (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))))) i) i
 Case conversion may be inaccurate. Consider using '#align composition.single_embedding Composition.single_embeddingₓ'. -/
 @[simp]
 theorem single_embedding {n : ℕ} (h : 0 < n) (i : Fin n) :
@@ -1147,7 +1147,7 @@ def boundary : Fin c.boundaries.card ↪o Fin (n + 1) :=
 lean 3 declaration is
   forall {n : Nat} (c : CompositionAsSet n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) => (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))) (CompositionAsSet.card_boundaries_pos n c))) (OfNat.ofNat.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (OfNat.mk.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) 0 (Zero.zero.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne))) (Fin.hasZeroOfNeZero (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (One.one.{0} Nat Nat.hasOne)) (NeZero.succ n)))))
 but is expected to have type
-  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (RelEmbedding.toEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (CompositionAsSet.boundary n c)) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ n)))
+  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) (OfNat.ofNat.{0} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)) (CompositionAsSet.card_boundaries_pos n c))) 0 (Fin.instOfNatFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) 0 (NeZero.succ n)))
 Case conversion may be inaccurate. Consider using '#align composition_as_set.boundary_zero CompositionAsSet.boundary_zeroₓ'. -/
 @[simp]
 theorem boundary_zero : (c.boundary ⟨0, c.card_boundaries_pos⟩ : Fin (n + 1)) = 0 :=
@@ -1160,7 +1160,7 @@ theorem boundary_zero : (c.boundary ⟨0, c.card_boundaries_pos⟩ : Fin (n + 1)
 lean 3 declaration is
   forall {n : Nat} (c : CompositionAsSet n), Eq.{1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) => (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (Fin.last n)
 but is expected to have type
-  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} ((fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (RelEmbedding.toEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (CompositionAsSet.boundary n c)) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (Fin.last n)
+  forall {n : Nat} (c : CompositionAsSet n), Eq.{1} ((fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) (CompositionAsSet.length n c) (CompositionAsSet.length_lt_card_boundaries n c))) (Fin.last n)
 Case conversion may be inaccurate. Consider using '#align composition_as_set.boundary_length CompositionAsSet.boundary_lengthₓ'. -/
 @[simp]
 theorem boundary_length : c.boundary ⟨c.length, c.length_lt_card_boundaries⟩ = Fin.last n :=
@@ -1202,7 +1202,7 @@ theorem blocks_length : c.blocks.length = c.length :=
 lean 3 declaration is
   forall {n : Nat} (c : CompositionAsSet n) {i : Nat} (h : LT.lt.{0} Nat Nat.hasLt i (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))), Eq.{1} Nat (List.sum.{0} Nat Nat.hasAdd Nat.hasZero (List.take.{0} Nat i (CompositionAsSet.blocks n c))) ((fun (a : Type) (b : Type) [self : HasLiftT.{1, 1} a b] => self.0) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (HasLiftT.mk.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (CoeTCₓ.coe.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (coeBase.{1, 1} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) Nat (Fin.coeToNat (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))))) (coeFn.{1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n)))))))) (fun (_x : RelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) => (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) -> (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))) (RelEmbedding.hasCoeToFun.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin.hasLe (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)))) (LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Preorder.toLE.{0} (Fin (Nat.succ n)) (PartialOrder.toPreorder.{0} (Fin (Nat.succ n)) (SemilatticeInf.toPartialOrder.{0} (Fin (Nat.succ n)) (Lattice.toSemilatticeInf.{0} (Fin (Nat.succ n)) (LinearOrder.toLattice.{0} (Fin (Nat.succ n)) (Fin.linearOrder (Nat.succ n))))))))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) i h)))
 but is expected to have type
-  forall {n : Nat} (c : CompositionAsSet n) {i : Nat} (h : LT.lt.{0} Nat instLTNat i (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))), Eq.{1} Nat (List.sum.{0} Nat instAddNat (LinearOrderedCommMonoidWithZero.toZero.{0} Nat Nat.linearOrderedCommMonoidWithZero) (List.take.{0} Nat i (CompositionAsSet.blocks n c))) (Fin.val (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (FunLike.coe.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (EmbeddingLike.toFunLike.{1, 1, 1} (Function.Embedding.{1, 1} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Function.instEmbeddingLikeEmbedding.{1, 1} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (RelEmbedding.toEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (CompositionAsSet.boundary n c)) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) i h)))
+  forall {n : Nat} (c : CompositionAsSet n) {i : Nat} (h : LT.lt.{0} Nat instLTNat i (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))), Eq.{1} Nat (List.sum.{0} Nat instAddNat (LinearOrderedCommMonoidWithZero.toZero.{0} Nat Nat.linearOrderedCommMonoidWithZero) (List.take.{0} Nat i (CompositionAsSet.blocks n c))) (Fin.val (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))) (FunLike.coe.{1, 1, 1} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (fun (_x : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) _x) (RelHomClass.toFunLike.{0, 0, 0} (OrderEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))) (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (RelEmbedding.instRelHomClassRelEmbedding.{0, 0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) => LE.le.{0} (Fin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) (instLEFin (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c))) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) => LE.le.{0} (Fin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (instLEFin (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697))) (CompositionAsSet.boundary n c) (Fin.mk (Finset.card.{0} (Fin (Nat.succ n)) (CompositionAsSet.boundaries n c)) i h)))
 Case conversion may be inaccurate. Consider using '#align composition_as_set.blocks_partial_sum CompositionAsSet.blocks_partial_sumₓ'. -/
 theorem blocks_partial_sum {i : ℕ} (h : i < c.boundaries.card) :
     (c.blocks.take i).Sum = c.boundary ⟨i, h⟩ :=
Diff
@@ -379,7 +379,7 @@ theorem orderEmbOfFin_boundaries :
 `fin n` at the relevant position. -/
 def embedding (i : Fin c.length) : Fin (c.blocksFun i) ↪o Fin n :=
   (Fin.natAdd <| c.sizeUpTo i).trans <|
-    Fin.castLe <|
+    Fin.castLE <|
       calc
         c.sizeUpTo i + c.blocksFun i = c.sizeUpTo (i + 1) := (c.sizeUpTo_succ _).symm
         _ ≤ c.sizeUpTo c.length := (monotone_sum_take _ i.2)
Diff
@@ -1237,7 +1237,7 @@ theorem mem_boundaries_iff_exists_blocks_sum_take_eq {j : Fin (n + 1)} :
     rw [← hi, c.blocks_partial_sum i.2]
     rfl
   · rintro ⟨i, hi, H⟩
-    convert (c.boundaries.order_iso_of_fin rfl ⟨i, hi⟩).2
+    convert(c.boundaries.order_iso_of_fin rfl ⟨i, hi⟩).2
     have : c.boundary ⟨i, hi⟩ = j := by rwa [Fin.ext_iff, ← c.blocks_partial_sum hi]
     exact this.symm
 #align composition_as_set.mem_boundaries_iff_exists_blocks_sum_take_eq CompositionAsSet.mem_boundaries_iff_exists_blocks_sum_take_eq
Diff
@@ -382,7 +382,7 @@ def embedding (i : Fin c.length) : Fin (c.blocksFun i) ↪o Fin n :=
     Fin.castLe <|
       calc
         c.sizeUpTo i + c.blocksFun i = c.sizeUpTo (i + 1) := (c.sizeUpTo_succ _).symm
-        _ ≤ c.sizeUpTo c.length := monotone_sum_take _ i.2
+        _ ≤ c.sizeUpTo c.length := (monotone_sum_take _ i.2)
         _ = n := c.sizeUpTo_length
         
 #align composition.embedding Composition.embedding
@@ -524,7 +524,7 @@ theorem disjoint_range {i₁ i₂ : Fin c.length} (h : i₁ ≠ i₂) :
     apply lt_irrefl (x : ℕ)
     calc
       (x : ℕ) < c.size_up_to (i₁ : ℕ).succ := (c.mem_range_embedding_iff.1 hx₁).2
-      _ ≤ c.size_up_to (i₂ : ℕ) := monotone_sum_take _ A
+      _ ≤ c.size_up_to (i₂ : ℕ) := (monotone_sum_take _ A)
       _ ≤ x := (c.mem_range_embedding_iff.1 hx₂).1
       
 #align composition.disjoint_range Composition.disjoint_range

Changes in mathlib4

mathlib3
mathlib4
chore: adapt to multiple goal linter 1 (#12338)

A PR accompanying #12339.

Zulip discussion

Diff
@@ -388,7 +388,7 @@ theorem disjoint_range {i₁ i₂ : Fin c.length} (h : i₁ ≠ i₂) :
     Disjoint (Set.range (c.embedding i₁)) (Set.range (c.embedding i₂)) := by
   classical
     wlog h' : i₁ < i₂
-    exact (this c h.symm (h.lt_or_lt.resolve_left h')).symm
+    · exact (this c h.symm (h.lt_or_lt.resolve_left h')).symm
     by_contra d
     obtain ⟨x, hx₁, hx₂⟩ :
       ∃ x : Fin n, x ∈ Set.range (c.embedding i₁) ∧ x ∈ Set.range (c.embedding i₂) :=
@@ -1031,8 +1031,8 @@ theorem CompositionAsSet.toComposition_boundaries (c : CompositionAsSet n) :
   constructor
   · rintro ⟨i, _, hi⟩
     refine' ⟨i.1, _, _⟩
-    simpa [c.card_boundaries_eq_succ_length] using i.2
-    simp [Composition.boundary, Composition.sizeUpTo, ← hi]
+    · simpa [c.card_boundaries_eq_succ_length] using i.2
+    · simp [Composition.boundary, Composition.sizeUpTo, ← hi]
   · rintro ⟨i, i_lt, hi⟩
     refine' ⟨i, by simp, _⟩
     rw [c.card_boundaries_eq_succ_length] at i_lt
chore: split Subsingleton,Nontrivial off of Data.Set.Basic (#11832)

Moves definition of and lemmas related to Set.Subsingleton and Set.Nontrivial to a new file, so that Basic can be shorter.

Diff
@@ -6,7 +6,8 @@ Authors: Sébastien Gouëzel
 import Mathlib.Algebra.BigOperators.Fin
 import Mathlib.Algebra.Order.BigOperators.Group.Finset
 import Mathlib.Data.Finset.Sort
-import Mathlib.Data.Set.Basic
+import Mathlib.Data.Set.Subsingleton
+
 
 #align_import combinatorics.composition from "leanprover-community/mathlib"@"92ca63f0fb391a9ca5f22d2409a6080e786d99f7"
 
doc: replace mathlib3 names in doc comments (#11952)

A few miscellaneous directories: RingTheory, SetTheory, Combinatorics and CategoryTheory.

Co-authored-by: Scott Morrison <scott@tqft.net>

Diff
@@ -308,7 +308,7 @@ theorem coe_embedding (i : Fin c.length) (j : Fin (c.blocksFun i)) :
 #align composition.coe_embedding Composition.coe_embedding
 
 /-- `index_exists` asserts there is some `i` with `j < c.size_up_to (i+1)`.
-In the next definition `index` we use `nat.find` to produce the minimal such index.
+In the next definition `index` we use `Nat.find` to produce the minimal such index.
 -/
 theorem index_exists {j : ℕ} (h : j < n) : ∃ i : ℕ, j < c.sizeUpTo i.succ ∧ i < c.length := by
   have n_pos : 0 < n := lt_of_le_of_lt (zero_le j) h
chore: Sort big operator order lemmas (#11750)

Take the content of

  • some of Algebra.BigOperators.List.Basic
  • some of Algebra.BigOperators.List.Lemmas
  • some of Algebra.BigOperators.Multiset.Basic
  • some of Algebra.BigOperators.Multiset.Lemmas
  • Algebra.BigOperators.Multiset.Order
  • Algebra.BigOperators.Order

and sort it into six files:

Here are the design decisions at play:

  • Pure algebra and big operators algebra shouldn't import (algebraic) order theory. This PR makes that better, but not perfect because we still import Data.Nat.Order.Basic in a few List files.
  • It's Algebra.Order.BigOperators instead of Algebra.BigOperators.Order because algebraic order theory is more of a theory than big operators algebra. Another reason is that algebraic order theory is the only way to mix pure order and pure algebra, while there are more ways to mix pure finiteness and pure algebra than just big operators.
  • There are separate files for group/monoid lemmas vs ring lemmas. Groups/monoids are the natural setup for big operators, so their lemmas shouldn't be mixed with ring lemmas that involves both addition and multiplication. As a result, everything under Algebra.Order.BigOperators.Group should be additivisable (except a few Nat- or Int-specific lemmas). In contrast, things under Algebra.Order.BigOperators.Ring are more prone to having heavy imports.
  • Lemmas are separated according to List vs Multiset vs Finset. This is not strictly necessary, and can be relaxed in cases where there aren't that many lemmas to be had. As an example, I could split out the AbsoluteValue lemmas from Algebra.Order.BigOperators.Ring.Finset to a file Algebra.Order.BigOperators.Ring.AbsoluteValue and it could stay this way until too many lemmas are in this file (or a split is needed for import reasons), in which case we would need files Algebra.Order.BigOperators.Ring.AbsoluteValue.Finset, Algebra.Order.BigOperators.Ring.AbsoluteValue.Multiset, etc...
  • Finsupp big operator and finprod/finsum order lemmas also belong in Algebra.Order.BigOperators. I haven't done so in this PR because the diff is big enough like that.
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2020 Sébastien Gouëzel. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Sébastien Gouëzel
 -/
-import Mathlib.Data.Finset.Sort
-import Mathlib.Algebra.BigOperators.Order
 import Mathlib.Algebra.BigOperators.Fin
+import Mathlib.Algebra.Order.BigOperators.Group.Finset
+import Mathlib.Data.Finset.Sort
 import Mathlib.Data.Set.Basic
 
 #align_import combinatorics.composition from "leanprover-community/mathlib"@"92ca63f0fb391a9ca5f22d2409a6080e786d99f7"
chore: bump Std (#11833)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -715,8 +715,8 @@ theorem get_splitWrtCompositionAux (l : List α) (ns : List ℕ) {i : ℕ} (hi)
   · rw [Nat.add_zero, List.take_zero, sum_nil]
     simpa using get_zero hi
   · simp only [splitWrtCompositionAux._eq_2, get_cons_succ, IH, take,
-        sum_cons, Nat.add_eq, add_zero, splitAt_eq_take_drop, ← drop_take, drop_drop]
-    rw [Nat.succ_eq_add_one, add_comm i 1, add_comm]
+        sum_cons, Nat.add_eq, add_zero, splitAt_eq_take_drop, drop_take, drop_drop]
+    rw [Nat.succ_eq_add_one, add_comm (sum _) n, Nat.add_sub_add_left]
 #align list.nth_le_split_wrt_composition_aux List.get_splitWrtCompositionAux
 
 /-- The `i`-th sublist in the splitting of a list `l` along a composition `c`, is the slice of `l`
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -647,7 +647,7 @@ def splitWrtComposition (l : List α) (c : Composition n) : List (List α) :=
   splitWrtCompositionAux l c.blocks
 #align list.split_wrt_composition List.splitWrtComposition
 
--- porting note: can't refer to subeqn in Lean 4 this way, and seems to definitionally simp
+-- Porting note: can't refer to subeqn in Lean 4 this way, and seems to definitionally simp
 --attribute [local simp] splitWrtCompositionAux.equations._eqn_1
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
@@ -728,7 +728,7 @@ theorem get_splitWrtComposition' (l : List α) (c : Composition n) {i : ℕ}
   get_splitWrtCompositionAux _ _ _
 #align list.nth_le_split_wrt_composition List.get_splitWrtComposition'
 
--- porting note: restatement of `get_splitWrtComposition`
+-- Porting note: restatement of `get_splitWrtComposition`
 theorem get_splitWrtComposition (l : List α) (c : Composition n)
     (i : Fin (l.splitWrtComposition c).length) :
     get (l.splitWrtComposition c) i = (l.take (c.sizeUpTo (i + 1))).drop (c.sizeUpTo i) :=
@@ -1002,7 +1002,7 @@ theorem Composition.toCompositionAsSet_blocks (c : Composition n) :
     eq_of_sum_take_eq length_eq H
   intro i hi
   have i_lt : i < d.boundaries.card := by
-    -- porting note: relied on `convert` unfolding definitions, switched to using a `simpa`
+    -- Porting note: relied on `convert` unfolding definitions, switched to using a `simpa`
     simpa [CompositionAsSet.blocks, length_ofFn, Nat.succ_eq_add_one,
       d.card_boundaries_eq_succ_length] using Nat.lt_succ_iff.2 hi
   have i_lt' : i < c.boundaries.card := i_lt
chore: prepare Lean version bump with explicit simp (#10999)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -997,7 +997,7 @@ theorem Composition.toCompositionAsSet_blocks (c : Composition n) :
     c.toCompositionAsSet.blocks = c.blocks := by
   let d := c.toCompositionAsSet
   change d.blocks = c.blocks
-  have length_eq : d.blocks.length = c.blocks.length := by simp [blocks_length]
+  have length_eq : d.blocks.length = c.blocks.length := by simp [d, blocks_length]
   suffices H : ∀ i ≤ d.blocks.length, (d.blocks.take i).sum = (c.blocks.take i).sum from
     eq_of_sum_take_eq length_eq H
   intro i hi
chore: remove stream-of-consciousness uses of have, replace and suffices (#10640)

No changes to tactic file, it's just boring fixes throughout the library.

This follows on from #6964.

Co-authored-by: sgouezel <sebastien.gouezel@univ-rennes1.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -998,8 +998,8 @@ theorem Composition.toCompositionAsSet_blocks (c : Composition n) :
   let d := c.toCompositionAsSet
   change d.blocks = c.blocks
   have length_eq : d.blocks.length = c.blocks.length := by simp [blocks_length]
-  suffices H : ∀ i ≤ d.blocks.length, (d.blocks.take i).sum = (c.blocks.take i).sum
-  exact eq_of_sum_take_eq length_eq H
+  suffices H : ∀ i ≤ d.blocks.length, (d.blocks.take i).sum = (c.blocks.take i).sum from
+    eq_of_sum_take_eq length_eq H
   intro i hi
   have i_lt : i < d.boundaries.card := by
     -- porting note: relied on `convert` unfolding definitions, switched to using a `simpa`
chore(*): shake imports (#10199)
  • Remove Data.Set.Basic from scripts/noshake.json.
  • Remove an exception that was used by examples only, move these examples to a new test file.
  • Drop an exception for Order.Filter.Basic dependency on Control.Traversable.Instances, as the relevant parts were moved to Order.Filter.ListTraverse.
  • Run lake exe shake --fix.
Diff
@@ -6,6 +6,7 @@ Authors: Sébastien Gouëzel
 import Mathlib.Data.Finset.Sort
 import Mathlib.Algebra.BigOperators.Order
 import Mathlib.Algebra.BigOperators.Fin
+import Mathlib.Data.Set.Basic
 
 #align_import combinatorics.composition from "leanprover-community/mathlib"@"92ca63f0fb391a9ca5f22d2409a6080e786d99f7"
 
chore: replace a proof in Combinatorics/Composition (#9540)

This proof has been causing timeouts for both leanprover/lean4#3124 and leanprover/lean4#3139 (and its in-progress fixes), so I'm just fixing it pre-emptively here.

(Fix due to @joehendrix.)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -996,9 +996,7 @@ theorem Composition.toCompositionAsSet_blocks (c : Composition n) :
     c.toCompositionAsSet.blocks = c.blocks := by
   let d := c.toCompositionAsSet
   change d.blocks = c.blocks
-  have length_eq : d.blocks.length = c.blocks.length := by
-    convert c.toCompositionAsSet_length
-    simp [CompositionAsSet.blocks]
+  have length_eq : d.blocks.length = c.blocks.length := by simp [blocks_length]
   suffices H : ∀ i ≤ d.blocks.length, (d.blocks.take i).sum = (c.blocks.take i).sum
   exact eq_of_sum_take_eq length_eq H
   intro i hi
chore: Remove nonterminal simp at (#7795)

Removes nonterminal uses of simp at. Replaces most of these with instances of simp? ... says.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -800,13 +800,15 @@ def compositionAsSetEquiv (n : ℕ) : CompositionAsSet n ≃ Finset (Fin (n - 1)
       · convert hj1
     · simp only [or_iff_not_imp_left]
       intro i_mem i_ne_zero i_ne_last
-      simp [Fin.ext_iff] at i_ne_zero i_ne_last
+      simp? [Fin.ext_iff] at i_ne_zero i_ne_last says
+        simp only [Fin.ext_iff, Fin.val_zero, Fin.val_last] at i_ne_zero i_ne_last
       have A : (1 + (i - 1) : ℕ) = (i : ℕ) := by
         rw [add_comm]
         exact Nat.succ_pred_eq_of_pos (pos_iff_ne_zero.mpr i_ne_zero)
       refine' ⟨⟨i - 1, _⟩, _, _⟩
       · have : (i : ℕ) < n + 1 := i.2
-        simp [Nat.lt_succ_iff_lt_or_eq, i_ne_last] at this
+        simp? [Nat.lt_succ_iff_lt_or_eq, i_ne_last] at this says
+          simp only [Nat.lt_succ_iff_lt_or_eq, i_ne_last, or_false] at this
         exact Nat.pred_lt_pred i_ne_zero this
       · convert i_mem
         simp only [ge_iff_le]
chore: rename by_contra' to by_contra! (#8797)

To fit with the "please try harder" convention of ! tactics.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -332,7 +332,7 @@ theorem sizeUpTo_index_le (j : Fin n) : c.sizeUpTo (c.index j) ≤ j := by
   set i := c.index j
   push_neg at H
   have i_pos : (0 : ℕ) < i := by
-    by_contra' i_pos
+    by_contra! i_pos
     revert H
     simp [nonpos_iff_eq_zero.1 i_pos, c.sizeUpTo_zero]
   let i₁ := (i : ℕ).pred
chore: space after (#8178)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -835,7 +835,7 @@ def compositionAsSetEquiv (n : ℕ) : CompositionAsSet n ≃ Finset (Fin (n - 1)
       · rw [add_comm] at this
         contradiction
       · cases' h with w h; cases' h with h₁ h₂
-        rw [←Fin.ext_iff] at h₂
+        rw [← Fin.ext_iff] at h₂
         rwa [h₂]
     · intro h
       apply Or.inr
fix: patch for std4#194 (more order lemmas for Nat) (#8077)
Diff
@@ -340,7 +340,7 @@ theorem sizeUpTo_index_le (j : Fin n) : c.sizeUpTo (c.index j) ≤ j := by
   have i₁_succ : i₁.succ = i := Nat.succ_pred_eq_of_pos i_pos
   have := Nat.find_min (c.index_exists j.2) i₁_lt_i
   simp [lt_trans i₁_lt_i (c.index j).2, i₁_succ] at this
-  exact Nat.lt_le_antisymm H this
+  exact Nat.lt_le_asymm H this
 #align composition.size_up_to_index_le Composition.sizeUpTo_index_le
 
 /-- Mapping an element `j` of `Fin n` to the element in the block containing it, identified with
chore: refactor prod_take_succ to List.get (#8043)

Needed to finish what was started in #8039

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -225,8 +225,6 @@ theorem sizeUpTo_succ {i : ℕ} (h : i < c.length) :
     c.sizeUpTo (i + 1) = c.sizeUpTo i + c.blocks.get ⟨i, h⟩ := by
   simp only [sizeUpTo]
   rw [sum_take_succ _ _ h]
-  -- Porting note: didn't used to need `rfl`
-  rfl
 #align composition.size_up_to_succ Composition.sizeUpTo_succ
 
 theorem sizeUpTo_succ' (i : Fin c.length) :
chore: refactor to List.get (#8039)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -149,27 +149,21 @@ theorem blocks_length : c.blocks.length = c.length :=
   rfl
 #align composition.blocks_length Composition.blocks_length
 
--- porting note: TODO, refactor to `List.get`
-set_option linter.deprecated false in
 /-- The blocks of a composition, seen as a function on `Fin c.length`. When composing analytic
 functions using compositions, this is the main player. -/
-def blocksFun : Fin c.length → ℕ := fun i => nthLe c.blocks i i.2
+def blocksFun : Fin c.length → ℕ := c.blocks.get
 #align composition.blocks_fun Composition.blocksFun
 
--- porting note: TODO, refactor to `List.get`
-set_option linter.deprecated false in
 theorem ofFn_blocksFun : ofFn c.blocksFun = c.blocks :=
-  ofFn_nthLe _
+  ofFn_get _
 #align composition.of_fn_blocks_fun Composition.ofFn_blocksFun
 
 theorem sum_blocksFun : ∑ i, c.blocksFun i = n := by
   conv_rhs => rw [← c.blocks_sum, ← ofFn_blocksFun, sum_ofFn]
 #align composition.sum_blocks_fun Composition.sum_blocksFun
 
--- porting note: TODO, refactor to `List.get`
-set_option linter.deprecated false in
 theorem blocksFun_mem_blocks (i : Fin c.length) : c.blocksFun i ∈ c.blocks :=
-  nthLe_mem _ _ _
+  get_mem _ _ _
 #align composition.blocks_fun_mem_blocks Composition.blocksFun_mem_blocks
 
 @[simp]
@@ -177,17 +171,13 @@ theorem one_le_blocks {i : ℕ} (h : i ∈ c.blocks) : 1 ≤ i :=
   c.blocks_pos h
 #align composition.one_le_blocks Composition.one_le_blocks
 
--- porting note: TODO, refactor to `List.get`
-set_option linter.deprecated false in
 @[simp]
-theorem one_le_blocks' {i : ℕ} (h : i < c.length) : 1 ≤ nthLe c.blocks i h :=
-  c.one_le_blocks (nthLe_mem (blocks c) i h)
+theorem one_le_blocks' {i : ℕ} (h : i < c.length) : 1 ≤ c.blocks.get ⟨i, h⟩ :=
+  c.one_le_blocks (get_mem (blocks c) i h)
 #align composition.one_le_blocks' Composition.one_le_blocks'
 
--- porting note: TODO, refactor to `List.get`
-set_option linter.deprecated false in
 @[simp]
-theorem blocks_pos' (i : ℕ) (h : i < c.length) : 0 < nthLe c.blocks i h :=
+theorem blocks_pos' (i : ℕ) (h : i < c.length) : 0 < c.blocks.get ⟨i, h⟩ :=
   c.one_le_blocks' h
 #align composition.blocks_pos' Composition.blocks_pos'
 
@@ -232,9 +222,11 @@ theorem sizeUpTo_le (i : ℕ) : c.sizeUpTo i ≤ n := by
 #align composition.size_up_to_le Composition.sizeUpTo_le
 
 theorem sizeUpTo_succ {i : ℕ} (h : i < c.length) :
-    c.sizeUpTo (i + 1) = c.sizeUpTo i + c.blocks.nthLe i h := by
+    c.sizeUpTo (i + 1) = c.sizeUpTo i + c.blocks.get ⟨i, h⟩ := by
   simp only [sizeUpTo]
   rw [sum_take_succ _ _ h]
+  -- Porting note: didn't used to need `rfl`
+  rfl
 #align composition.size_up_to_succ Composition.sizeUpTo_succ
 
 theorem sizeUpTo_succ' (i : Fin c.length) :
@@ -412,9 +404,7 @@ theorem disjoint_range {i₁ i₂ : Fin c.length} (h : i₁ ≠ i₂) :
 theorem mem_range_embedding (j : Fin n) : j ∈ Set.range (c.embedding (c.index j)) := by
   have : c.embedding (c.index j) (c.invEmbedding j) ∈ Set.range (c.embedding (c.index j)) :=
     Set.mem_range_self _
-  -- porting note: previously `rwa` closed
-  rw [c.embedding_comp_inv j] at this
-  assumption
+  rwa [c.embedding_comp_inv j] at this
 #align composition.mem_range_embedding Composition.mem_range_embedding
 
 theorem mem_range_embedding_iff' {j : Fin n} {i : Fin c.length} :
@@ -501,11 +491,9 @@ theorem ones_blocks (n : ℕ) : (ones n).blocks = replicate n (1 : ℕ) :=
   rfl
 #align composition.ones_blocks Composition.ones_blocks
 
--- porting note: TODO, refactor to `List.get`
-set_option linter.deprecated false in
 @[simp]
 theorem ones_blocksFun (n : ℕ) (i : Fin (ones n).length) : (ones n).blocksFun i = 1 := by
-  simp only [blocksFun, ones, blocks, i.2, List.nthLe_replicate]
+  simp only [blocksFun, ones, blocks, i.2, List.get_replicate]
 #align composition.ones_blocks_fun Composition.ones_blocksFun
 
 @[simp]
@@ -554,7 +542,7 @@ theorem eq_ones_iff_length {c : Composition n} : c = ones n ↔ c.length = n :=
         rw [← ofFn_blocksFun, mem_ofFn c.blocksFun, Set.mem_range] at hi
         obtain ⟨j : Fin c.length, hj : c.blocksFun j = i⟩ := hi
         rw [← hj] at i_blocks
-        exact Finset.sum_lt_sum (fun i _ => by simp [blocksFun]) ⟨j, Finset.mem_univ _, i_blocks⟩
+        exact Finset.sum_lt_sum (fun i _ => one_le_blocksFun c i) ⟨j, Finset.mem_univ _, i_blocks⟩
         }
       _ = n := c.sum_blocksFun
 #align composition.eq_ones_iff_length Composition.eq_ones_iff_length
@@ -719,39 +707,33 @@ theorem sum_take_map_length_splitWrtComposition (l : List α) (c : Composition l
   exact map_length_splitWrtComposition l c
 #align list.sum_take_map_length_split_wrt_composition List.sum_take_map_length_splitWrtComposition
 
--- porting note: TODO, refactor to `List.get`
-set_option linter.deprecated false in
-theorem nthLe_splitWrtCompositionAux (l : List α) (ns : List ℕ) {i : ℕ} (hi) :
-    nthLe (l.splitWrtCompositionAux ns) i hi =
+theorem get_splitWrtCompositionAux (l : List α) (ns : List ℕ) {i : ℕ} (hi) :
+    (l.splitWrtCompositionAux ns).get ⟨i, hi⟩  =
       (l.take (ns.take (i + 1)).sum).drop (ns.take i).sum := by
   induction' ns with n ns IH generalizing l i
   · cases hi
   cases' i with i
-  · rw [Nat.add_zero, List.take_zero, sum_nil, nthLe_zero]; dsimp
-    simp only [splitWrtCompositionAux_cons, head!, sum, foldl, zero_add]
-  · simp only [splitWrtCompositionAux_cons, take, sum_cons,
-      Nat.add_eq, add_zero, gt_iff_lt, nthLe_cons, IH]; dsimp
-    rw [Nat.succ_sub_succ_eq_sub, ←Nat.succ_eq_add_one,tsub_zero]
-    simp only [← drop_take, drop_drop]
-    rw [add_comm]
-#align list.nth_le_split_wrt_composition_aux List.nthLe_splitWrtCompositionAux
-
--- porting note: TODO, refactor to `List.get`
-set_option linter.deprecated false in
+  · rw [Nat.add_zero, List.take_zero, sum_nil]
+    simpa using get_zero hi
+  · simp only [splitWrtCompositionAux._eq_2, get_cons_succ, IH, take,
+        sum_cons, Nat.add_eq, add_zero, splitAt_eq_take_drop, ← drop_take, drop_drop]
+    rw [Nat.succ_eq_add_one, add_comm i 1, add_comm]
+#align list.nth_le_split_wrt_composition_aux List.get_splitWrtCompositionAux
+
 /-- The `i`-th sublist in the splitting of a list `l` along a composition `c`, is the slice of `l`
 between the indices `c.sizeUpTo i` and `c.sizeUpTo (i+1)`, i.e., the indices in the `i`-th
 block of the composition. -/
-theorem nthLe_splitWrtComposition (l : List α) (c : Composition n) {i : ℕ}
+theorem get_splitWrtComposition' (l : List α) (c : Composition n) {i : ℕ}
     (hi : i < (l.splitWrtComposition c).length) :
-    nthLe (l.splitWrtComposition c) i hi = (l.take (c.sizeUpTo (i + 1))).drop (c.sizeUpTo i) :=
-  nthLe_splitWrtCompositionAux _ _ _
-#align list.nth_le_split_wrt_composition List.nthLe_splitWrtComposition
+    (l.splitWrtComposition c).get ⟨i, hi⟩ = (l.take (c.sizeUpTo (i + 1))).drop (c.sizeUpTo i) :=
+  get_splitWrtCompositionAux _ _ _
+#align list.nth_le_split_wrt_composition List.get_splitWrtComposition'
 
--- porting note: restatement of `nthLe_splitWrtComposition`
+-- porting note: restatement of `get_splitWrtComposition`
 theorem get_splitWrtComposition (l : List α) (c : Composition n)
     (i : Fin (l.splitWrtComposition c).length) :
     get (l.splitWrtComposition c) i = (l.take (c.sizeUpTo (i + 1))).drop (c.sizeUpTo i) :=
-  nthLe_splitWrtComposition _ _ _
+  get_splitWrtComposition' _ _ _
 
 theorem join_splitWrtCompositionAux {ns : List ℕ} :
     ∀ {l : List α}, ns.sum = l.length → (l.splitWrtCompositionAux ns).join = l := by
@@ -944,8 +926,6 @@ theorem blocks_length : c.blocks.length = c.length :=
   length_ofFn _
 #align composition_as_set.blocks_length CompositionAsSet.blocks_length
 
--- porting note: TODO, refactor to `List.get`
-set_option linter.deprecated false in
 theorem blocks_partial_sum {i : ℕ} (h : i < c.boundaries.card) :
     (c.blocks.take i).sum = c.boundary ⟨i, h⟩ := by
   induction' i with i IH
@@ -955,9 +935,7 @@ theorem blocks_partial_sum {i : ℕ} (h : i < c.boundaries.card) :
     simp [blocks, Nat.lt_of_succ_lt_succ h]
   have B : i < c.boundaries.card := lt_of_lt_of_le A (by simp [blocks, length, Nat.sub_le])
   rw [sum_take_succ _ _ A, IH B]
-  simp only [blocks, blocksFun, nthLe_ofFn']
-  apply add_tsub_cancel_of_le
-  simp
+  simp [blocks, blocksFun, get_ofFn]
 #align composition_as_set.blocks_partial_sum CompositionAsSet.blocks_partial_sum
 
 theorem mem_boundaries_iff_exists_blocks_sum_take_eq {j : Fin (n + 1)} :
chore: missing spaces after rcases, convert and congrm (#7725)

Replace rcases( with rcases (. Same thing for convert( and congrm(. No other change.

Diff
@@ -964,7 +964,7 @@ theorem mem_boundaries_iff_exists_blocks_sum_take_eq {j : Fin (n + 1)} :
     j ∈ c.boundaries ↔ ∃ i < c.boundaries.card, (c.blocks.take i).sum = j := by
   constructor
   · intro hj
-    rcases(c.boundaries.orderIsoOfFin rfl).surjective ⟨j, hj⟩ with ⟨i, hi⟩
+    rcases (c.boundaries.orderIsoOfFin rfl).surjective ⟨j, hj⟩ with ⟨i, hi⟩
     rw [Subtype.ext_iff, Subtype.coe_mk] at hi
     refine' ⟨i.1, i.2, _⟩
     dsimp at hi
chore: bump to std#260 (#7134)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Alex Keizer <alex@keizer.dev>

Diff
@@ -690,7 +690,7 @@ theorem length_splitWrtComposition (l : List α) (c : Composition n) :
 theorem map_length_splitWrtCompositionAux {ns : List ℕ} :
     ∀ {l : List α}, ns.sum ≤ l.length → map length (l.splitWrtCompositionAux ns) = ns := by
   induction' ns with n ns IH <;> intro l h <;> simp at h
-  · simp
+  · simp [splitWrtCompositionAux]
   have := le_trans (Nat.le_add_right _ _) h
   simp only [splitWrtCompositionAux_cons, this]; dsimp
   rw [length_take, IH] <;> simp [length_drop]
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -641,7 +641,7 @@ join operation.
 
 namespace List
 
-variable {α : Type _}
+variable {α : Type*}
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
fix: let use provide last constructor argument, introduce mathlib3-like flattening use! (#5350)

Changes:

  • use now by default discharges with try with_reducible use_discharger with a custom discharger tactic rather than try with_reducible rfl, which makes it be closer to exists and the use in mathlib3. It doesn't go so far as to do try with_reducible trivial since that involves the contradiction tactic.
  • this discharger is configurable with use (discharger := tacticSeq...)
  • the use evaluation loop will try refining after constructor failure, so it can be used to fill in all arguments rather than all but the last, like in mathlib3 (closes #5072) but with the caveat that it only works so long as the last argument is not an inductive type (like Eq).
  • adds use!, which is nearly the same as the mathlib3 use and fills in constructor arguments along the nodes and leaves of the nested constructor expressions. This version tries refining before applying constructors, so it can be used like exact for the last argument.

The difference between mathlib3 use and this use! is that (1) use! uses a different tactic to discharge goals (mathlib3 used trivial', which did reducible refl, but also contradiction, which we don't emulate) (2) it does not rewrite using exists_prop. Regarding 2, this feature seems to be less useful now that bounded existentials encode the bound using a conjunction rather than with nested existentials. We do have exists_prop as part of use_discharger however.

Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com>

Diff
@@ -859,8 +859,7 @@ def compositionAsSetEquiv (n : ℕ) : CompositionAsSet n ≃ Finset (Fin (n - 1)
         rwa [h₂]
     · intro h
       apply Or.inr
-      use i
-      exact ⟨h, rfl⟩
+      use i, h
 #align composition_as_set_equiv compositionAsSetEquiv
 
 instance compositionAsSetFintype (n : ℕ) : Fintype (CompositionAsSet n) :=
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2020 Sébastien Gouëzel. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Sébastien Gouëzel
-
-! This file was ported from Lean 3 source module combinatorics.composition
-! leanprover-community/mathlib commit 92ca63f0fb391a9ca5f22d2409a6080e786d99f7
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Data.Finset.Sort
 import Mathlib.Algebra.BigOperators.Order
 import Mathlib.Algebra.BigOperators.Fin
 
+#align_import combinatorics.composition from "leanprover-community/mathlib"@"92ca63f0fb391a9ca5f22d2409a6080e786d99f7"
+
 /-!
 # Compositions
 
chore: bump to nightly-2023-07-01 (#5409)

Open in Gitpod

Co-authored-by: Komyyy <pol_tta@outlook.jp> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -305,8 +305,8 @@ theorem orderEmbOfFin_boundaries :
 /-- Embedding the `i`-th block of a composition (identified with `Fin (c.blocks_fun i)`) into
 `Fin n` at the relevant position. -/
 def embedding (i : Fin c.length) : Fin (c.blocksFun i) ↪o Fin n :=
-  (Fin.natAdd <| c.sizeUpTo i).trans <|
-    Fin.castLE <|
+  (Fin.natAddEmb <| c.sizeUpTo i).trans <|
+    Fin.castLEEmb <|
       calc
         c.sizeUpTo i + c.blocksFun i = c.sizeUpTo (i + 1) := (c.sizeUpTo_succ _).symm
         _ ≤ c.sizeUpTo c.length := monotone_sum_take _ i.2
chore: remove occurrences of semicolon after space (#5713)

This is the second half of the changes originally in #5699, removing all occurrences of ; after a space and implementing a linter rule to enforce it.

In most cases this 2-character substring has a space after it, so the following command was run first:

find . -type f -name "*.lean" -exec sed -i -E 's/ ; /; /g' {} \;

The remaining cases were few enough in number that they were done manually.

Diff
@@ -452,7 +452,7 @@ def blocksFinEquiv : (Σi : Fin c.length, Fin (c.blocksFun i)) ≃ Fin n
   left_inv x := by
     rcases x with ⟨i, y⟩
     dsimp
-    congr ; · exact c.index_embedding _ _
+    congr; · exact c.index_embedding _ _
     rw [Fin.heq_ext_iff]
     · exact c.invEmbedding_comp _ _
     · rw [c.index_embedding]
@@ -695,7 +695,7 @@ theorem map_length_splitWrtCompositionAux {ns : List ℕ} :
   induction' ns with n ns IH <;> intro l h <;> simp at h
   · simp
   have := le_trans (Nat.le_add_right _ _) h
-  simp only [splitWrtCompositionAux_cons, this] ; dsimp
+  simp only [splitWrtCompositionAux_cons, this]; dsimp
   rw [length_take, IH] <;> simp [length_drop]
   · assumption
   · exact le_tsub_of_add_le_left h
@@ -760,7 +760,7 @@ theorem join_splitWrtCompositionAux {ns : List ℕ} :
     ∀ {l : List α}, ns.sum = l.length → (l.splitWrtCompositionAux ns).join = l := by
   induction' ns with n ns IH <;> intro l h <;> simp at h
   · exact (length_eq_zero.1 h.symm).symm
-  simp only [splitWrtCompositionAux_cons] ; dsimp
+  simp only [splitWrtCompositionAux_cons]; dsimp
   rw [IH]
   · simp
   · rw [length_drop, ← h, add_tsub_cancel_left]
chore: fix focusing dots (#5708)

This PR is the result of running

find . -type f -name "*.lean" -exec sed -i -E 's/^( +)\. /\1· /' {} \;
find . -type f -name "*.lean" -exec sed -i -E 'N;s/^( +·)\n +(.*)$/\1 \2/;P;D' {} \;

which firstly replaces . focusing dots with · and secondly removes isolated instances of such dots, unifying them with the following line. A new rule is placed in the style linter to verify this.

Diff
@@ -677,8 +677,8 @@ theorem splitWrtCompositionAux_cons (l : List α) (n ns) :
 theorem length_splitWrtCompositionAux (l : List α) (ns) :
     length (l.splitWrtCompositionAux ns) = ns.length := by
     induction ns generalizing l
-    . simp [splitWrtCompositionAux, *]
-    . simp [*]
+    · simp [splitWrtCompositionAux, *]
+    · simp [*]
 #align list.length_split_wrt_composition_aux List.length_splitWrtCompositionAux
 
 /-- When one splits a list along a composition `c`, the number of sublists thus created is
@@ -693,12 +693,12 @@ theorem length_splitWrtComposition (l : List α) (c : Composition n) :
 theorem map_length_splitWrtCompositionAux {ns : List ℕ} :
     ∀ {l : List α}, ns.sum ≤ l.length → map length (l.splitWrtCompositionAux ns) = ns := by
   induction' ns with n ns IH <;> intro l h <;> simp at h
-  . simp
+  · simp
   have := le_trans (Nat.le_add_right _ _) h
   simp only [splitWrtCompositionAux_cons, this] ; dsimp
   rw [length_take, IH] <;> simp [length_drop]
-  . assumption
-  . exact le_tsub_of_add_le_left h
+  · assumption
+  · exact le_tsub_of_add_le_left h
 #align list.map_length_split_wrt_composition_aux List.map_length_splitWrtCompositionAux
 
 /-- When one splits a list along a composition `c`, the lengths of the sublists thus created are
@@ -730,9 +730,9 @@ theorem nthLe_splitWrtCompositionAux (l : List α) (ns : List ℕ) {i : ℕ} (hi
   induction' ns with n ns IH generalizing l i
   · cases hi
   cases' i with i
-  . rw [Nat.add_zero, List.take_zero, sum_nil, nthLe_zero]; dsimp
+  · rw [Nat.add_zero, List.take_zero, sum_nil, nthLe_zero]; dsimp
     simp only [splitWrtCompositionAux_cons, head!, sum, foldl, zero_add]
-  . simp only [splitWrtCompositionAux_cons, take, sum_cons,
+  · simp only [splitWrtCompositionAux_cons, take, sum_cons,
       Nat.add_eq, add_zero, gt_iff_lt, nthLe_cons, IH]; dsimp
     rw [Nat.succ_sub_succ_eq_sub, ←Nat.succ_eq_add_one,tsub_zero]
     simp only [← drop_take, drop_drop]
@@ -763,7 +763,7 @@ theorem join_splitWrtCompositionAux {ns : List ℕ} :
   simp only [splitWrtCompositionAux_cons] ; dsimp
   rw [IH]
   · simp
-  . rw [length_drop, ← h, add_tsub_cancel_left]
+  · rw [length_drop, ← h, add_tsub_cancel_left]
 #align list.join_split_wrt_composition_aux List.join_splitWrtCompositionAux
 
 /-- If one splits a list along a composition, and then joins the sublists, one gets back the
@@ -855,9 +855,9 @@ def compositionAsSetEquiv (n : ℕ) : CompositionAsSet n ≃ Finset (Fin (n - 1)
     constructor
     · intro h
       cases' h with n h
-      . rw [add_comm] at this
+      · rw [add_comm] at this
         contradiction
-      . cases' h with w h; cases' h with h₁ h₂
+      · cases' h with w h; cases' h with h₁ h₂
         rw [←Fin.ext_iff] at h₂
         rwa [h₂]
     · intro h
fix: ∑' precedence (#5615)
  • Also remove most superfluous parentheses around big operators (, and variants).
  • roughly the used regex: ([^a-zA-Zα-ωΑ-Ω'𝓝ℳ₀𝕂ₛ)]) \(([∑∏][^()∑∏]*,[^()∑∏:]*)\) ([⊂⊆=<≤]) replaced by $1 $2 $3
Diff
@@ -165,7 +165,7 @@ theorem ofFn_blocksFun : ofFn c.blocksFun = c.blocks :=
   ofFn_nthLe _
 #align composition.of_fn_blocks_fun Composition.ofFn_blocksFun
 
-theorem sum_blocksFun : (∑ i, c.blocksFun i) = n := by
+theorem sum_blocksFun : ∑ i, c.blocksFun i = n := by
   conv_rhs => rw [← c.blocks_sum, ← ofFn_blocksFun, sum_ofFn]
 #align composition.sum_blocks_fun Composition.sum_blocksFun
 
@@ -623,7 +623,7 @@ theorem ne_single_iff {n : ℕ} (hn : 0 < n) {c : Composition n} :
       by_contra ji
       apply lt_irrefl (∑ k, c.blocksFun k)
       calc
-        (∑ k, c.blocksFun k) ≤ c.blocksFun i := by simp only [c.sum_blocksFun, hi]
+        ∑ k, c.blocksFun k ≤ c.blocksFun i := by simp only [c.sum_blocksFun, hi]
         _ < ∑ k, c.blocksFun k :=
           Finset.single_lt_sum ji (Finset.mem_univ _) (Finset.mem_univ _) (c.one_le_blocksFun j)
             fun _ _ _ => zero_le _
chore: clean up spacing around at and goals (#5387)

Changes are of the form

  • some_tactic at h⊢ -> some_tactic at h ⊢
  • some_tactic at h -> some_tactic at h
Diff
@@ -343,7 +343,7 @@ theorem lt_sizeUpTo_index_succ (j : Fin n) : (j : ℕ) < c.sizeUpTo (c.index j).
 theorem sizeUpTo_index_le (j : Fin n) : c.sizeUpTo (c.index j) ≤ j := by
   by_contra H
   set i := c.index j
-  push_neg  at H
+  push_neg at H
   have i_pos : (0 : ℕ) < i := by
     by_contra' i_pos
     revert H
@@ -605,7 +605,7 @@ theorem eq_single_iff_length {n : ℕ} (h : 0 < n) {c : Composition n} :
     ext1
     have A : c.blocks.length = 1 := H ▸ c.blocks_length
     have B : c.blocks.sum = n := c.blocks_sum
-    rw [eq_cons_of_length_one A] at B⊢
+    rw [eq_cons_of_length_one A] at B ⊢
     simpa [single_blocks] using B
 #align composition.eq_single_iff_length Composition.eq_single_iff_length
 
feat: port Analysis.Analytic.Composition (#4572)

Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Johan Commelin <johan@commelin.net> Co-authored-by: Mauricio Collares <mauricio@collares.org>

Diff
@@ -750,6 +750,12 @@ theorem nthLe_splitWrtComposition (l : List α) (c : Composition n) {i : ℕ}
   nthLe_splitWrtCompositionAux _ _ _
 #align list.nth_le_split_wrt_composition List.nthLe_splitWrtComposition
 
+-- porting note: restatement of `nthLe_splitWrtComposition`
+theorem get_splitWrtComposition (l : List α) (c : Composition n)
+    (i : Fin (l.splitWrtComposition c).length) :
+    get (l.splitWrtComposition c) i = (l.take (c.sizeUpTo (i + 1))).drop (c.sizeUpTo i) :=
+  nthLe_splitWrtComposition _ _ _
+
 theorem join_splitWrtCompositionAux {ns : List ℕ} :
     ∀ {l : List α}, ns.sum = l.length → (l.splitWrtCompositionAux ns).join = l := by
   induction' ns with n ns IH <;> intro l h <;> simp at h
chore: formatting issues (#4947)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -802,7 +802,7 @@ def compositionAsSetEquiv (n : ℕ) : CompositionAsSet n ≃ Finset (Fin (n - 1)
   invFun s :=
     { boundaries :=
         { i : Fin n.succ |
-            i = 0 ∨ i = Fin.last n ∨ ∃ (j : Fin (n - 1))(_hj : j ∈ s), (i : ℕ) = j + 1 }.toFinset
+            i = 0 ∨ i = Fin.last n ∨ ∃ (j : Fin (n - 1)) (_hj : j ∈ s), (i : ℕ) = j + 1 }.toFinset
       zero_mem := by simp
       getLast_mem := by simp }
   left_inv := by
feat: add Mathlib.Tactic.Common, and import (#4056)

This makes a mathlib4 version of mathlib3's tactic.basic, now called Mathlib.Tactic.Common, which imports all tactics which do not have significant theory requirements, and then is imported all across the base of the hierarchy.

This ensures that all common tactics are available nearly everywhere in the library, rather than having to be imported one-by-one as you need them.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -11,7 +11,6 @@ Authors: Sébastien Gouëzel
 import Mathlib.Data.Finset.Sort
 import Mathlib.Algebra.BigOperators.Order
 import Mathlib.Algebra.BigOperators.Fin
-import Mathlib.Tactic.WLOG
 
 /-!
 # Compositions
chore: bye-bye, solo bys! (#3825)

This PR puts, with one exception, every single remaining by that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh. The exception is when the by begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.

Essentially this is s/\n *by$/ by/g, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated bys".

Diff
@@ -360,8 +360,7 @@ theorem sizeUpTo_index_le (j : Fin n) : c.sizeUpTo (c.index j) ≤ j := by
 /-- Mapping an element `j` of `Fin n` to the element in the block containing it, identified with
 `Fin (c.blocks_fun (c.index j))` through the canonical increasing bijection. -/
 def invEmbedding (j : Fin n) : Fin (c.blocksFun (c.index j)) :=
-  ⟨j - c.sizeUpTo (c.index j),
-    by
+  ⟨j - c.sizeUpTo (c.index j), by
     rw [tsub_lt_iff_right, add_comm, ← sizeUpTo_succ']
     · exact lt_sizeUpTo_index_succ _ _
     · exact sizeUpTo_index_le _ _⟩
@@ -950,8 +949,7 @@ theorem blocks_partial_sum {i : ℕ} (h : i < c.boundaries.card) :
     (c.blocks.take i).sum = c.boundary ⟨i, h⟩ := by
   induction' i with i IH
   · simp
-  have A : i < c.blocks.length :=
-    by
+  have A : i < c.blocks.length := by
     rw [c.card_boundaries_eq_succ_length] at h
     simp [blocks, Nat.lt_of_succ_lt_succ h]
   have B : i < c.boundaries.card := lt_of_lt_of_le A (by simp [blocks, length, Nat.sub_le])
@@ -1019,8 +1017,7 @@ theorem Composition.toCompositionAsSet_blocks (c : Composition n) :
     c.toCompositionAsSet.blocks = c.blocks := by
   let d := c.toCompositionAsSet
   change d.blocks = c.blocks
-  have length_eq : d.blocks.length = c.blocks.length :=
-    by
+  have length_eq : d.blocks.length = c.blocks.length := by
     convert c.toCompositionAsSet_length
     simp [CompositionAsSet.blocks]
   suffices H : ∀ i ≤ d.blocks.length, (d.blocks.take i).sum = (c.blocks.take i).sum
chore: fix #align lines (#3640)

This PR fixes two things:

  • Most align statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align). This is often seen in the mathport output after ending calc blocks.
  • All remaining more-than-one-line #align statements. (This was needed for a script I wrote for #3630.)
Diff
@@ -312,7 +312,6 @@ def embedding (i : Fin c.length) : Fin (c.blocksFun i) ↪o Fin n :=
         c.sizeUpTo i + c.blocksFun i = c.sizeUpTo (i + 1) := (c.sizeUpTo_succ _).symm
         _ ≤ c.sizeUpTo c.length := monotone_sum_take _ i.2
         _ = n := c.sizeUpTo_length
-
 #align composition.embedding Composition.embedding
 
 @[simp]
@@ -413,7 +412,6 @@ theorem disjoint_range {i₁ i₂ : Fin c.length} (h : i₁ ≠ i₂) :
       (x : ℕ) < c.sizeUpTo (i₁ : ℕ).succ := (c.mem_range_embedding_iff.1 hx₁).2
       _ ≤ c.sizeUpTo (i₂ : ℕ) := monotone_sum_take _ A
       _ ≤ x := (c.mem_range_embedding_iff.1 hx₂).1
-
 #align composition.disjoint_range Composition.disjoint_range
 
 theorem mem_range_embedding (j : Fin n) : j ∈ Set.range (c.embedding (c.index j)) := by
@@ -564,7 +562,6 @@ theorem eq_ones_iff_length {c : Composition n} : c = ones n ↔ c.length = n :=
         exact Finset.sum_lt_sum (fun i _ => by simp [blocksFun]) ⟨j, Finset.mem_univ _, i_blocks⟩
         }
       _ = n := c.sum_blocksFun
-
 #align composition.eq_ones_iff_length Composition.eq_ones_iff_length
 
 theorem eq_ones_iff_le_length {c : Composition n} : c = ones n ↔ n ≤ c.length := by
@@ -704,7 +701,6 @@ theorem map_length_splitWrtCompositionAux {ns : List ℕ} :
   rw [length_take, IH] <;> simp [length_drop]
   . assumption
   . exact le_tsub_of_add_le_left h
-
 #align list.map_length_split_wrt_composition_aux List.map_length_splitWrtCompositionAux
 
 /-- When one splits a list along a composition `c`, the lengths of the sublists thus created are
@@ -743,7 +739,6 @@ theorem nthLe_splitWrtCompositionAux (l : List α) (ns : List ℕ) {i : ℕ} (hi
     rw [Nat.succ_sub_succ_eq_sub, ←Nat.succ_eq_add_one,tsub_zero]
     simp only [← drop_take, drop_drop]
     rw [add_comm]
-
 #align list.nth_le_split_wrt_composition_aux List.nthLe_splitWrtCompositionAux
 
 -- porting note: TODO, refactor to `List.get`
chore: rename castLe (#3326)
Diff
@@ -307,7 +307,7 @@ theorem orderEmbOfFin_boundaries :
 `Fin n` at the relevant position. -/
 def embedding (i : Fin c.length) : Fin (c.blocksFun i) ↪o Fin n :=
   (Fin.natAdd <| c.sizeUpTo i).trans <|
-    Fin.castLe <|
+    Fin.castLE <|
       calc
         c.sizeUpTo i + c.blocksFun i = c.sizeUpTo (i + 1) := (c.sizeUpTo_succ _).symm
         _ ≤ c.sizeUpTo c.length := monotone_sum_take _ i.2
chore: bump SHA in Combinatorics/Composition (#3184)

Nothing to do but bump the SHA.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Sébastien Gouëzel
 
 ! This file was ported from Lean 3 source module combinatorics.composition
-! leanprover-community/mathlib commit 2705404e701abc6b3127da906f40bae062a169c9
+! leanprover-community/mathlib commit 92ca63f0fb391a9ca5f22d2409a6080e786d99f7
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
chore: fix align linebreaks (#3103)

Apparently we have CI scripts that assume those fall on a single line. The command line used to fix the aligns was:

find . -type f -name "*.lean" -exec sed -i -E 'N;s/^#align ([^[:space:]]+)\n *([^[:space:]]+)$/#align \1 \2/' {} \;

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -896,8 +896,7 @@ def length : ℕ :=
 
 theorem card_boundaries_eq_succ_length : c.boundaries.card = c.length + 1 :=
   (tsub_eq_iff_eq_add_of_le (Nat.succ_le_of_lt c.card_boundaries_pos)).mp rfl
-#align composition_as_set.card_boundaries_eq_succ_length
-  CompositionAsSet.card_boundaries_eq_succ_length
+#align composition_as_set.card_boundaries_eq_succ_length CompositionAsSet.card_boundaries_eq_succ_length
 
 theorem length_lt_card_boundaries : c.length < c.boundaries.card := by
   rw [c.card_boundaries_eq_succ_length]
feat: improvements to congr! and convert (#2606)
  • There is now configuration for congr!, convert, and convert_to to control parts of the congruence algorithm, in particular transparency settings when applying congruence lemmas.
  • congr! now applies congruence lemmas with reducible transparency by default. This prevents it from unfolding definitions when applying congruence lemmas. It also now tries both the LHS-biased and RHS-biased simp congruence lemmas, with a configuration option to set which it should try first.
  • There is now a new HEq congruence lemma generator that gives each hypothesis access to the proofs of previous hypotheses. This means that if you have an equality ⊢ ⟨a, x⟩ = ⟨b, y⟩ of sigma types, congr! turns this into goals ⊢ a = b and ⊢ a = b → HEq x y (note that congr! will also auto-introduce a = b for you in the second goal). This congruence lemma generator applies to more cases than the simp congruence lemma generator does.
  • congr! (and hence convert) are more careful about applying lemmas that don't force definitions to unfold. There were a number of cases in mathlib where the implementation of congr was being abused to unfold definitions.
  • With set_option trace.congr! true you can see what congr! sees when it is deciding on congruence lemmas.
  • There is also a bug fix in convert_to to do using 1 when there is no using clause, to match its documentation.

Note that congr! is more capable than congr at finding a way to equate left-hand sides and right-hand sides, so you will frequently need to limit its depth with a using clause. However, there is also a new heuristic to prevent considering unlikely-to-be-provable type equalities (controlled by the typeEqs option), which can help limit the depth automatically.

There is also a predefined configuration that you can invoke with, for example, convert (config := .unfoldSameFun) h, that causes it to behave more like congr, including using default transparency when unfolding.

Diff
@@ -822,7 +822,6 @@ def compositionAsSetEquiv (n : ℕ) : CompositionAsSet n ≃ Finset (Fin (n - 1)
       · exact c.zero_mem
       · exact c.getLast_mem
       · convert hj1
-        rwa [Fin.ext_iff]
     · simp only [or_iff_not_imp_left]
       intro i_mem i_ne_zero i_ne_last
       simp [Fin.ext_iff] at i_ne_zero i_ne_last
@@ -1033,11 +1032,10 @@ theorem Composition.toCompositionAsSet_blocks (c : Composition n) :
   suffices H : ∀ i ≤ d.blocks.length, (d.blocks.take i).sum = (c.blocks.take i).sum
   exact eq_of_sum_take_eq length_eq H
   intro i hi
-  have i_lt : i < d.boundaries.card :=
-    by
-    convert Nat.lt_succ_iff.2 hi
-    convert d.card_boundaries_eq_succ_length
-    exact length_ofFn _
+  have i_lt : i < d.boundaries.card := by
+    -- porting note: relied on `convert` unfolding definitions, switched to using a `simpa`
+    simpa [CompositionAsSet.blocks, length_ofFn, Nat.succ_eq_add_one,
+      d.card_boundaries_eq_succ_length] using Nat.lt_succ_iff.2 hi
   have i_lt' : i < c.boundaries.card := i_lt
   have i_lt'' : i < c.length + 1 := by rwa [c.card_boundaries_eq_succ_length] at i_lt'
   have A :
Fix: rename Set.to_finset_set_of to Set.toFinset_setOf (#2309)
Diff
@@ -815,7 +815,7 @@ def compositionAsSetEquiv (n : ℕ) : CompositionAsSet n ≃ Finset (Fin (n - 1)
   left_inv := by
     intro c
     ext i
-    simp only [add_comm, Set.to_finset_set_of, Finset.mem_univ,
+    simp only [add_comm, Set.toFinset_setOf, Finset.mem_univ,
      forall_true_left, Finset.mem_filter, true_and, exists_prop]
     constructor
     · rintro (rfl | rfl | ⟨j, hj1, hj2⟩)
@@ -848,7 +848,7 @@ def compositionAsSetEquiv (n : ℕ) : CompositionAsSet n ≃ Finset (Fin (n - 1)
       rw [add_comm]
       apply (Nat.succ_pred_eq_of_pos _).symm
       exact (zero_le i.val).trans_lt (i.2.trans_le (Nat.sub_le n 1))
-    simp only [add_comm, Fin.ext_iff, Fin.val_zero, Fin.val_last, exists_prop, Set.to_finset_set_of,
+    simp only [add_comm, Fin.ext_iff, Fin.val_zero, Fin.val_last, exists_prop, Set.toFinset_setOf,
       Finset.mem_univ, forall_true_left, Finset.mem_filter, add_eq_zero_iff, and_false,
       add_left_inj, false_or, true_and]
     erw [Set.mem_setOf_eq]
feat: Port/Combinatorics.Composition (#2043)

Co-authored-by: Lukas Miaskiwskyi <lukas.mias@gmail.com> Co-authored-by: thorimur <68410468+thorimur@users.noreply.github.com>

Dependencies 7 + 253

254 files ported (97.3%)
106968 lines ported (97.2%)
Show graph

The unported dependencies are