combinatorics.composition
⟷
Mathlib.Combinatorics.Composition
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.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
wlog
(#16495)
Benefits:
Downside:
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>
@@ -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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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];
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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 /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/63721b2c3eba6c325ecf8ae8cca27155a4f6306f
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/2fe465deb81bcd7ccafa065bb686888a82f15372
@@ -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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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 :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/a3e83f0fa4391c8740f7d773a7a9b74e311ae2a3
@@ -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 _
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -97,7 +97,7 @@ Composition, partition
open List
-open BigOperators
+open scoped BigOperators
variable {n : ℕ}
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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 :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -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⟩ :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/0b9eaaa7686280fad8cce467f5c3c57ee6ce77f8
@@ -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ₓ'. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8b8ba04e2f326f3f7cf24ad129beda58531ada61
@@ -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⟩ :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/730c6d4cab72b9d84fcfb9e95e8796e9cd8f40ba
@@ -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⟩ :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/039ef89bef6e58b32b62898dd48e9d1a4312bb65
@@ -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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce7e9d53d4bbc38065db3b595cd5bd73c323bc1d
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/4c586d291f189eecb9d00581aeb3dd998ac34442
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -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
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.
@@ -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"
@@ -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
Take the content of
Algebra.BigOperators.List.Basic
Algebra.BigOperators.List.Lemmas
Algebra.BigOperators.Multiset.Basic
Algebra.BigOperators.Multiset.Lemmas
Algebra.BigOperators.Multiset.Order
Algebra.BigOperators.Order
and sort it into six files:
Algebra.Order.BigOperators.Group.List
. I credit Yakov for https://github.com/leanprover-community/mathlib/pull/8543.Algebra.Order.BigOperators.Group.Multiset
. Copyright inherited from Algebra.BigOperators.Multiset.Order
.Algebra.Order.BigOperators.Group.Finset
. Copyright inherited from Algebra.BigOperators.Order
.Algebra.Order.BigOperators.Ring.List
. I credit Stuart for https://github.com/leanprover-community/mathlib/pull/10184.Algebra.Order.BigOperators.Ring.Multiset
. I credit Ruben for https://github.com/leanprover-community/mathlib/pull/8787.Algebra.Order.BigOperators.Ring.Finset
. I credit Floris for https://github.com/leanprover-community/mathlib/pull/1294.Here are the design decisions at play:
Data.Nat.Order.Basic
in a few List
files.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.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.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.@@ -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"
@@ -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`
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -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
@@ -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
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>
@@ -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`
Data.Set.Basic
from scripts/noshake.json
.example
s only,
move these example
s to a new test file.Order.Filter.Basic
dependency on Control.Traversable.Instances
,
as the relevant parts were moved to Order.Filter.ListTraverse
.lake exe shake --fix
.@@ -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"
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>
@@ -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
@@ -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]
@@ -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
@@ -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
@@ -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
@@ -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) :
@@ -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)} :
rcases
, convert
and congrm
(#7725)
Replace rcases(
with rcases (
. Same thing for convert(
and congrm(
. No other change.
@@ -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
@@ -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]
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -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 -/
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.use (discharger := tacticSeq...)
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
).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>
@@ -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) :=
@@ -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
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>
@@ -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
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.
@@ -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]
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.
@@ -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
∑'
precedence (#5615)
∑
, ∏
and variants).([^a-zA-Zα-ωΑ-Ω'𝓝ℳ₀𝕂ₛ)]) \(([∑∏][^()∑∏]*,[^()∑∏:]*)\) ([⊂⊆=<≤])
replaced by $1 $2 $3
@@ -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 _
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
@@ -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
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>
@@ -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
@@ -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
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>
@@ -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
by
s! (#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 by
s".
@@ -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
This PR fixes two things:
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.#align
statements. (This was needed for a script I wrote for #3630.)@@ -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`
@@ -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
@@ -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.
-/
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>
@@ -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]
congr!
and convert
(#2606)
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.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.set_option trace.congr! true
you can see what congr!
sees when it is deciding on congruence lemmas.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.
@@ -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 :
@@ -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]
The unported dependencies are