Loogle!
Result
Found 212 declarations mentioning Fin.succAbove. Of these, only the first 200 are shown.
- Fin.predAbove_succAbove π Mathlib.Data.Fin.Basic
{n : β} (p i : Fin n) : p.predAbove (p.castSucc.succAbove i) = i - Fin.succAbove_last π Mathlib.Data.Fin.Basic
{n : β} : (Fin.last n).succAbove = Fin.castSucc - Fin.succAbove_last_apply π Mathlib.Data.Fin.Basic
{n : β} (i : Fin n) : (Fin.last n).succAbove i = i.castSucc - Fin.succAbove_castSucc_self π Mathlib.Data.Fin.Basic
{n : β} (j : Fin n) : j.castSucc.succAbove j = j.succ - Fin.succAbove_succ_self π Mathlib.Data.Fin.Basic
{n : β} (j : Fin n) : j.succ.succAbove j = j.castSucc - Fin.succAbove π Mathlib.Data.Fin.Basic
{n : β} (p : Fin (n + 1)) (i : Fin n) : Fin (n + 1) - Fin.succAbove_left_injective π Mathlib.Data.Fin.Basic
{n : β} : Function.Injective Fin.succAbove - Fin.succAbove_right_injective π Mathlib.Data.Fin.Basic
{n : β} {p : Fin (n + 1)} : Function.Injective p.succAbove - Fin.succAbove_castSucc_of_le π Mathlib.Data.Fin.Basic
{n : β} (p i : Fin n) (h : p β€ i) : p.castSucc.succAbove i = i.succ - Fin.succAbove_castSucc_of_lt π Mathlib.Data.Fin.Basic
{n : β} (p i : Fin n) (h : i < p) : p.castSucc.succAbove i = i.castSucc - Fin.succAbove_succ_of_le π Mathlib.Data.Fin.Basic
{n : β} (p i : Fin n) (h : i β€ p) : p.succ.succAbove i = i.castSucc - Fin.succAbove_succ_of_lt π Mathlib.Data.Fin.Basic
{n : β} (p i : Fin n) (h : p < i) : p.succ.succAbove i = i.succ - Fin.ne_succAbove π Mathlib.Data.Fin.Basic
{n : β} (p : Fin (n + 1)) (i : Fin n) : p β p.succAbove i - Fin.succAbove_ne π Mathlib.Data.Fin.Basic
{n : β} (p : Fin (n + 1)) (i : Fin n) : p.succAbove i β p - Fin.succAbove_right_inj π Mathlib.Data.Fin.Basic
{n : β} {p : Fin (n + 1)} {i j : Fin n} : p.succAbove i = p.succAbove j β i = j - Fin.succAbove_castPred_self π Mathlib.Data.Fin.Basic
{n : β} (p : Fin (n + 1)) (h : p β Fin.last n) : p.succAbove (p.castPred h) = (p.castPred h).succ - Fin.succAbove_predAbove π Mathlib.Data.Fin.Basic
{n : β} {p : Fin n} {i : Fin (n + 1)} (h : i β p.castSucc) : p.castSucc.succAbove (p.predAbove i) = i - Fin.succ_succAbove_predAbove π Mathlib.Data.Fin.Basic
{n : β} {p : Fin n} {i : Fin (n + 1)} (h : i β p.succ) : p.succ.succAbove (p.predAbove i) = i - Fin.succAbove_zero π Mathlib.Data.Fin.Basic
{n : β} : Fin.succAbove 0 = Fin.succ - Fin.succAbove_zero_apply π Mathlib.Data.Fin.Basic
{n : β} (i : Fin n) : Fin.succAbove 0 i = i.succ - Fin.zero_succAbove π Mathlib.Data.Fin.Basic
{n : β} (i : Fin n) : Fin.succAbove 0 i = i.succ - Fin.succAbove_left_inj π Mathlib.Data.Fin.Basic
{n : β} {x y : Fin (n + 1)} : x.succAbove = y.succAbove β x = y - Fin.exists_succAbove_eq π Mathlib.Data.Fin.Basic
{n : β} {x y : Fin (n + 1)} (h : x β y) : β z, y.succAbove z = x - Fin.exists_succAbove_eq_iff π Mathlib.Data.Fin.Basic
{n : β} {x y : Fin (n + 1)} : (β z, x.succAbove z = y) β y β x - Fin.succAbove_of_castSucc_lt π Mathlib.Data.Fin.Basic
{n : β} (p : Fin (n + 1)) (i : Fin n) (h : i.castSucc < p) : p.succAbove i = i.castSucc - Fin.succAbove_of_le_castSucc π Mathlib.Data.Fin.Basic
{n : β} (p : Fin (n + 1)) (i : Fin n) (h : p β€ i.castSucc) : p.succAbove i = i.succ - Fin.succAbove_of_lt_succ π Mathlib.Data.Fin.Basic
{n : β} (p : Fin (n + 1)) (i : Fin n) (h : p < i.succ) : p.succAbove i = i.succ - Fin.succAbove_of_succ_le π Mathlib.Data.Fin.Basic
{n : β} (p : Fin (n + 1)) (i : Fin n) (h : i.succ β€ p) : p.succAbove i = i.castSucc - Fin.succ_succAbove_zero π Mathlib.Data.Fin.Basic
{n : β} [NeZero n] (i : Fin n) : i.succ.succAbove 0 = 0 - Fin.lt_succAbove_iff_le_castSucc π Mathlib.Data.Fin.Basic
{n : β} (p : Fin (n + 1)) (i : Fin n) : p < p.succAbove i β p β€ i.castSucc - Fin.lt_succAbove_iff_lt_castSucc π Mathlib.Data.Fin.Basic
{n : β} (p : Fin (n + 1)) (i : Fin n) : p < p.succAbove i β p < i.succ - Fin.succAbove_lt_iff_castSucc_lt π Mathlib.Data.Fin.Basic
{n : β} (p : Fin (n + 1)) (i : Fin n) : p.succAbove i < p β i.castSucc < p - Fin.succAbove_lt_iff_succ_le π Mathlib.Data.Fin.Basic
{n : β} (p : Fin (n + 1)) (i : Fin n) : p.succAbove i < p β i.succ β€ p - Fin.coe_succAboveEmb π Mathlib.Data.Fin.Basic
{n : β} (p : Fin (n + 1)) : βp.succAboveEmb = p.succAbove - Fin.succAboveEmb_apply π Mathlib.Data.Fin.Basic
{n : β} (p : Fin (n + 1)) (i : Fin n) : p.succAboveEmb i = p.succAbove i - Fin.castSucc_succAbove_castSucc π Mathlib.Data.Fin.Basic
{n : β} {i : Fin (n + 1)} {j : Fin n} : i.castSucc.succAbove j.castSucc = (i.succAbove j).castSucc - Fin.succ_succAbove_succ π Mathlib.Data.Fin.Basic
{n : β} (i : Fin (n + 1)) (j : Fin n) : i.succ.succAbove j.succ = (i.succAbove j).succ - Fin.succAbove_ne_last_last π Mathlib.Data.Fin.Basic
{n : β} {a : Fin (n + 2)} (h : a β Fin.last (n + 1)) : a.succAbove (Fin.last n) = Fin.last (n + 1) - Fin.succAbove_pred_self π Mathlib.Data.Fin.Basic
{n : β} (p : Fin (n + 1)) (h : p β 0) : p.succAbove (p.pred h) = (p.pred h).castSucc - Fin.succAbove_castPred_of_le π Mathlib.Data.Fin.Basic
{n : β} (p i : Fin (n + 1)) (h : p β€ i) (hi : i β Fin.last n) : p.succAbove (i.castPred hi) = (i.castPred hi).succ - Fin.one_succAbove_succ π Mathlib.Data.Fin.Basic
{n : β} (j : Fin n) : Fin.succAbove 1 j.succ = j.succ.succ - Fin.succAbove_pos π Mathlib.Data.Fin.Basic
{n : β} [NeZero n] (p : Fin (n + 1)) (i : Fin n) (h : 0 < i) : 0 < p.succAbove i - Fin.range_succAbove π Mathlib.Data.Fin.Basic
{n : β} (p : Fin (n + 1)) : Set.range p.succAbove = {p}αΆ - Fin.succAbove_ne_last π Mathlib.Data.Fin.Basic
{n : β} {a : Fin (n + 2)} {b : Fin (n + 1)} (ha : a β Fin.last (n + 1)) (hb : b β Fin.last n) : a.succAbove b β Fin.last (n + 1) - Fin.succAbove_eq_last_iff π Mathlib.Data.Fin.Basic
{n : β} {a : Fin (n + 2)} {b : Fin (n + 1)} (ha : a β Fin.last (n + 1)) : a.succAbove b = Fin.last (n + 1) β b = Fin.last n - Fin.succ_succAbove_one π Mathlib.Data.Fin.Basic
{n : β} [NeZero n] (i : Fin (n + 1)) : i.succ.succAbove 1 = (i.succAbove 0).succ - Fin.succAbove_pred_of_le π Mathlib.Data.Fin.Basic
{n : β} (p i : Fin (n + 1)) (h : i β€ p) (hi : i β 0) : p.succAbove (i.pred hi) = (i.pred hi).castSucc - Fin.succAbove_ne_zero_zero π Mathlib.Data.Fin.Basic
{n : β} [NeZero n] {a : Fin (n + 1)} (ha : a β 0) : a.succAbove 0 = 0 - Fin.succAbove_ne_zero π Mathlib.Data.Fin.Basic
{n : β} [NeZero n] {a : Fin (n + 1)} {b : Fin n} (ha : a β 0) (hb : b β 0) : a.succAbove b β 0 - Fin.succAbove_eq_zero_iff π Mathlib.Data.Fin.Basic
{n : β} [NeZero n] {a : Fin (n + 1)} {b : Fin n} (ha : a β 0) : a.succAbove b = 0 β b = 0 - Fin.castPred_succAbove π Mathlib.Data.Fin.Basic
{n : β} (x : Fin n) (y : Fin (n + 1)) (h : x.castSucc < y) (h' : y.succAbove x β Fin.last n := β―) : (y.succAbove x).castPred h' = x - Fin.succAbove_castPred_of_lt π Mathlib.Data.Fin.Basic
{n : β} (p i : Fin (n + 1)) (h : i < p) (hi : i β Fin.last n := β―) : p.succAbove (i.castPred hi) = i - Fin.pred_succAbove π Mathlib.Data.Fin.Basic
{n : β} (x : Fin n) (y : Fin (n + 1)) (h : y β€ x.castSucc) (h' : y.succAbove x β 0 := β―) : (y.succAbove x).pred h' = x - Fin.castPred_succAbove_castPred π Mathlib.Data.Fin.Basic
{n : β} {a : Fin (n + 2)} {b : Fin (n + 1)} (ha : a β Fin.last (n + 1)) (hb : b β Fin.last n) (hk : a.succAbove b β Fin.last (n + 1) := β―) : (a.castPred ha).succAbove (b.castPred hb) = (a.succAbove b).castPred hk - Fin.one_succAbove_one π Mathlib.Data.Fin.Basic
{n : β} : Fin.succAbove 1 1 = 2 - Fin.one_succAbove_zero π Mathlib.Data.Fin.Basic
{n : β} : Fin.succAbove 1 0 = 0 - Fin.succAbove_pred_of_lt π Mathlib.Data.Fin.Basic
{n : β} (p i : Fin (n + 1)) (h : p < i) (hi : i β 0 := β―) : p.succAbove (i.pred hi) = i - Fin.pred_succAbove_pred π Mathlib.Data.Fin.Basic
{n : β} {a : Fin (n + 2)} {b : Fin (n + 1)} (ha : a β 0) (hb : b β 0) (hk : a.succAbove b β 0 := β―) : (a.pred ha).succAbove (b.pred hb) = (a.succAbove b).pred hk - Fin.rev_succAbove π Mathlib.Data.Fin.Rev
{n : β} (p : Fin (n + 1)) (i : Fin n) : (p.succAbove i).rev = p.rev.succAbove i.rev - Fin.succAbove_rev_left π Mathlib.Data.Fin.Rev
{n : β} (p : Fin (n + 1)) (i : Fin n) : p.rev.succAbove i = (p.succAbove i.rev).rev - Fin.succAbove_rev_right π Mathlib.Data.Fin.Rev
{n : β} (p : Fin (n + 1)) (i : Fin n) : p.succAbove i.rev = (p.rev.succAbove i).rev - Fin.insertNth_apply_same π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} (i : Fin (n + 1)) (x : Ξ± i) (p : (j : Fin n) β Ξ± (i.succAbove j)) : i.insertNth x p i = x - Fin.removeNth π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} (p : Fin (n + 1)) (f : (i : Fin (n + 1)) β Ξ± i) (i : Fin n) : Ξ± (p.succAbove i) - Fin.insertNth π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} (i : Fin (n + 1)) (x : Ξ± i) (p : (j : Fin n) β Ξ± (i.succAbove j)) (j : Fin (n + 1)) : Ξ± j - Fin.succAboveCases π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u} (i : Fin (n + 1)) (x : Ξ± i) (p : (j : Fin n) β Ξ± (i.succAbove j)) (j : Fin (n + 1)) : Ξ± j - Fin.forall_iff_succAbove π Mathlib.Data.Fin.Tuple.Basic
{n : β} {P : Fin (n + 1) β Prop} (p : Fin (n + 1)) : (β (i : Fin (n + 1)), P i) β P p β§ β (i : Fin n), P (p.succAbove i) - Fin.insertNthEquiv π Mathlib.Data.Fin.Tuple.Basic
{n : β} (Ξ± : Fin (n + 1) β Type u) (p : Fin (n + 1)) : Ξ± p Γ ((i : Fin n) β Ξ± (p.succAbove i)) β ((i : Fin (n + 1)) β Ξ± i) - Fin.removeNth_insertNth π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} (p : Fin (n + 1)) (a : Ξ± p) (f : (i : Fin n) β Ξ± (p.succAbove i)) : p.removeNth (p.insertNth a f) = f - Fin.succAbove_cases_eq_insertNth π Mathlib.Data.Fin.Tuple.Basic
: @Fin.succAboveCases = @Fin.insertNth - Fin.insertNth_apply_succAbove π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} (i : Fin (n + 1)) (x : Ξ± i) (p : (j : Fin n) β Ξ± (i.succAbove j)) (j : Fin n) : i.insertNth x p (i.succAbove j) = p j - Fin.insertNth_injective2 π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} {p : Fin (n + 1)} : Function.Injective2 p.insertNth - Fin.insertNth_right_injective π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} {p : Fin (n + 1)} (x : Ξ± p) : Function.Injective (p.insertNth x) - Fin.insertNth_left_injective π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} {p : Fin (n + 1)} (x : (i : Fin n) β Ξ± (p.succAbove i)) : Function.Injective fun x_1 => p.insertNth x_1 x - Fin.removeNth.eq_1 π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} (p : Fin (n + 1)) (f : (i : Fin (n + 1)) β Ξ± i) (i : Fin n) : p.removeNth f i = f (p.succAbove i) - Fin.insertNth_comp_succAbove π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ² : Sort u_2} (i : Fin (n + 1)) (x : Ξ²) (p : Fin n β Ξ²) : i.insertNth x p β i.succAbove = p - Fin.contractNth_apply_of_ne π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Sort u_1} (j : Fin (n + 1)) (op : Ξ± β Ξ± β Ξ±) (g : Fin (n + 1) β Ξ±) (k : Fin n) (hjk : βj β βk) : j.contractNth op g k = g (j.succAbove k) - Fin.eq_self_or_eq_succAbove π Mathlib.Data.Fin.Tuple.Basic
{n : β} (p i : Fin (n + 1)) : i = p β¨ β j, i = p.succAbove j - Fin.exists_iff_succAbove π Mathlib.Data.Fin.Tuple.Basic
{n : β} {P : Fin (n + 1) β Prop} (p : Fin (n + 1)) : (β i, P i) β P p β¨ β i, P (p.succAbove i) - Fin.insertNth.eq_1 π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} (i : Fin (n + 1)) (x : Ξ± i) (p : (j : Fin n) β Ξ± (i.succAbove j)) (j : Fin (n + 1)) : i.insertNth x p j = i.succAboveCases x p j - Fin.insertNth_inj π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} {p : Fin (n + 1)} {x y : (i : Fin n) β Ξ± (p.succAbove i)} {xβ yβ : Ξ± p} : p.insertNth xβ x = p.insertNth yβ y β xβ = yβ β§ x = y - Fin.insertNth_last π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} (x : Ξ± (Fin.last n)) (p : (j : Fin n) β Ξ± ((Fin.last n).succAbove j)) : (Fin.last n).insertNth x p = Fin.snoc (fun j => cast β― (p j)) x - Fin.removeNth_update π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} (p : Fin (n + 1)) (x : Ξ± p) (f : (j : Fin (n + 1)) β Ξ± j) : p.removeNth (Function.update f p x) = p.removeNth f - Fin.eq_insertNth_iff π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} {p : Fin (n + 1)} {a : Ξ± p} {f : (i : Fin n) β Ξ± (p.succAbove i)} {g : (j : Fin (n + 1)) β Ξ± j} : g = p.insertNth a f β g p = a β§ p.removeNth g = f - Fin.insertNth_eq_iff π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} {p : Fin (n + 1)} {a : Ξ± p} {f : (i : Fin n) β Ξ± (p.succAbove i)} {g : (j : Fin (n + 1)) β Ξ± j} : p.insertNth a f = g β a = g p β§ f = p.removeNth g - Fin.update_insertNth π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} (p : Fin (n + 1)) (x y : Ξ± p) (f : (i : Fin n) β Ξ± (p.succAbove i)) : Function.update (p.insertNth x f) p y = p.insertNth y f - Fin.removeNth_update_succAbove π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} (p : Fin (n + 1)) (i : Fin n) (x : Ξ± (p.succAbove i)) (f : (j : Fin (n + 1)) β Ξ± j) : p.removeNth (Function.update f (p.succAbove i) x) = Function.update (p.removeNth f) i x - Fin.insertNth_update π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} (p : Fin (n + 1)) (x : Ξ± p) (i : Fin n) (y : Ξ± (p.succAbove i)) (f : (j : Fin n) β Ξ± (p.succAbove j)) : p.insertNth x (Function.update f i y) = Function.update (p.insertNth x f) (p.succAbove i) y - Fin.insertNth_binop π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} (op : (j : Fin (n + 1)) β Ξ± j β Ξ± j β Ξ± j) (i : Fin (n + 1)) (x y : Ξ± i) (p q : (j : Fin n) β Ξ± (i.succAbove j)) : (i.insertNth (op i x y) fun j => op (i.succAbove j) (p j) (q j)) = fun j => op j (i.insertNth x p j) (i.insertNth y q j) - Fin.removeNth_zero π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} (f : (i : Fin (n + 1)) β Ξ± i) : Fin.removeNth 0 f = Fin.tail f - Fin.insertNthEquiv_zero π Mathlib.Data.Fin.Tuple.Basic
{n : β} (Ξ± : Fin (n + 1) β Type u_3) : Fin.insertNthEquiv Ξ± 0 = Fin.consEquiv Ξ± - Fin.insertNthEquiv_apply π Mathlib.Data.Fin.Tuple.Basic
{n : β} (Ξ± : Fin (n + 1) β Type u) (p : Fin (n + 1)) (f : Ξ± p Γ ((i : Fin n) β Ξ± (p.succAbove i))) (j : Fin (n + 1)) : (Fin.insertNthEquiv Ξ± p) f j = p.insertNth f.1 f.2 j - Fin.insertNth_le_iff π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Type u_3} [(i : Fin (n + 1)) β Preorder (Ξ± i)] {i : Fin (n + 1)} {x : Ξ± i} {p : (j : Fin n) β Ξ± (i.succAbove j)} {q : (j : Fin (n + 1)) β Ξ± j} : i.insertNth x p β€ q β x β€ q i β§ p β€ fun j => q (i.succAbove j) - Fin.le_insertNth_iff π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Type u_3} [(i : Fin (n + 1)) β Preorder (Ξ± i)] {i : Fin (n + 1)} {x : Ξ± i} {p : (j : Fin n) β Ξ± (i.succAbove j)} {q : (j : Fin (n + 1)) β Ξ± j} : q β€ i.insertNth x p β q i β€ x β§ (fun j => q (i.succAbove j)) β€ p - Fin.insertNthEquiv_symm_apply π Mathlib.Data.Fin.Tuple.Basic
{n : β} (Ξ± : Fin (n + 1) β Type u) (p : Fin (n + 1)) (f : (i : Fin (n + 1)) β Ξ± i) : (Fin.insertNthEquiv Ξ± p).symm f = (f p, p.removeNth f) - Fin.insertNth_zero π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} (x : Ξ± 0) (p : (j : Fin n) β Ξ± (Fin.succAbove 0 j)) : Fin.insertNth 0 x p = Fin.cons x fun j => cast β― (p j) - Fin.insertNth_apply_below π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} {i j : Fin (n + 1)} (h : j < i) (x : Ξ± i) (p : (k : Fin n) β Ξ± (i.succAbove k)) : i.insertNth x p j = Eq.recOn β― (p (j.castPred β―)) - Fin.succAboveCases.eq_1 π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u} (i : Fin (n + 1)) (x : Ξ± i) (p : (j : Fin n) β Ξ± (i.succAbove j)) (j : Fin (n + 1)) : i.succAboveCases x p j = if hj : j = i then β― βΈ x else if hlt : j < i then Eq.recOn β― (p (j.castPred β―)) else Eq.recOn β― (p (j.pred β―)) - Fin.insertNth_apply_above π Mathlib.Data.Fin.Tuple.Basic
{n : β} {Ξ± : Fin (n + 1) β Sort u_1} {i j : Fin (n + 1)} (h : i < j) (x : Ξ± i) (p : (k : Fin n) β Ξ± (i.succAbove k)) : i.insertNth x p j = Eq.recOn β― (p (j.pred β―)) - Fin.image_succAbove_univ π Mathlib.Data.Fintype.Basic
{n : β} (i : Fin (n + 1)) : Finset.image i.succAbove Finset.univ = {i}αΆ - Fin.univ_succAbove π Mathlib.Data.Fintype.Basic
(n : β) (p : Fin (n + 1)) : Finset.univ = Finset.cons p (Finset.map p.succAboveEmb Finset.univ) β― - Fin.succAbove_inj π Mathlib.Order.Fin.Basic
{n : β} {p : Fin (n + 1)} {i j : Fin n} : p.succAbove i = p.succAbove j β i = j - GCongr.Fin.succAbove_le_succAbove π Mathlib.Order.Fin.Basic
{n : β} {p : Fin (n + 1)} {i j : Fin n} : i β€ j β p.succAbove i β€ p.succAbove j - GCongr.Fin.succAbove_lt_succAbove π Mathlib.Order.Fin.Basic
{n : β} {p : Fin (n + 1)} {i j : Fin n} : i < j β p.succAbove i < p.succAbove j - Fin.succAbove_le_succAbove_iff π Mathlib.Order.Fin.Basic
{n : β} {p : Fin (n + 1)} {i j : Fin n} : p.succAbove i β€ p.succAbove j β i β€ j - Fin.succAbove_lt_succAbove_iff π Mathlib.Order.Fin.Basic
{n : β} {p : Fin (n + 1)} {i j : Fin n} : p.succAbove i < p.succAbove j β i < j - Fin.strictMono_succAbove π Mathlib.Order.Fin.Basic
{n : β} (p : Fin (n + 1)) : StrictMono p.succAbove - Fin.succAboveOrderEmb_apply π Mathlib.Order.Fin.Basic
{n : β} (p : Fin (n + 1)) (i : Fin n) : p.succAboveOrderEmb i = p.succAbove i - Fin.succAboveOrderEmb_toEmbedding π Mathlib.Order.Fin.Basic
{n : β} (p : Fin (n + 1)) : p.succAboveOrderEmb.toEmbedding = { toFun := p.succAbove, inj' := β― } - List.Vector.eraseIdx_insertIdx' π Mathlib.Data.Vector.Basic
{Ξ± : Type u_1} {n : β} {a : Ξ±} {v : List.Vector Ξ± (n + 1)} {i : Fin (n + 1)} {j : Fin (n + 2)} : List.Vector.eraseIdx (j.succAbove i) (List.Vector.insertIdx a j v) = List.Vector.insertIdx a (i.predAbove j) (List.Vector.eraseIdx i v) - finSuccEquiv'_succAbove π Mathlib.Logic.Equiv.Fin.Basic
{n : β} (i : Fin (n + 1)) (j : Fin n) : (finSuccEquiv' i) (i.succAbove j) = some j - finSuccEquiv'.eq_1 π Mathlib.Logic.Equiv.Fin.Basic
{n : β} (i : Fin (n + 1)) : finSuccEquiv' i = { toFun := i.insertNth none some, invFun := fun x => x.casesOn' i i.succAbove, left_inv := β―, right_inv := β― } - finSuccEquiv'_symm_some π Mathlib.Logic.Equiv.Fin.Basic
{n : β} (i : Fin (n + 1)) (j : Fin n) : (finSuccEquiv' i).symm (some j) = i.succAbove j - finSuccEquiv'_eq_some π Mathlib.Logic.Equiv.Fin.Basic
{n : β} {i j : Fin (n + 1)} {k : Fin n} : (finSuccEquiv' i) j = some k β j = i.succAbove k - finSuccAboveEquiv_apply π Mathlib.Logic.Equiv.Fin.Basic
{n : β} (p : Fin (n + 1)) (i : Fin n) : (finSuccAboveEquiv p) i = β¨p.succAbove i, β―β© - Fin.prod_univ_succAbove π Mathlib.Algebra.BigOperators.Fin
{M : Type u_2} [CommMonoid M] {n : β} (f : Fin (n + 1) β M) (x : Fin (n + 1)) : β i, f i = f x * β i, f (x.succAbove i) - Fin.sum_univ_succAbove π Mathlib.Algebra.BigOperators.Fin
{M : Type u_2} [AddCommMonoid M] {n : β} (f : Fin (n + 1) β M) (x : Fin (n + 1)) : β i, f i = f x + β i, f (x.succAbove i) - Fin.inv_partialProd_mul_eq_contractNth π Mathlib.Algebra.BigOperators.Fin
{n : β} {G : Type u_3} [Group G] (g : Fin (n + 1) β G) (j : Fin (n + 1)) (k : Fin n) : (Fin.partialProd g (j.succ.succAbove k.castSucc))β»ΒΉ * Fin.partialProd g (j.succAbove k).succ = j.contractNth (fun x1 x2 => x1 * x2) g k - Fin.neg_partialSum_add_eq_contractNth π Mathlib.Algebra.BigOperators.Fin
{n : β} {G : Type u_3} [AddGroup G] (g : Fin (n + 1) β G) (j : Fin (n + 1)) (k : Fin n) : -Fin.partialSum g (j.succ.succAbove k.castSucc) + Fin.partialSum g (j.succAbove k).succ = j.contractNth (fun x1 x2 => x1 + x2) g k - Fin.insertNth_one_right π Mathlib.Algebra.Group.Fin.Tuple
{n : β} {Ξ± : Fin (n + 1) β Type u_1} [(j : Fin (n + 1)) β One (Ξ± j)] (i : Fin (n + 1)) (x : Ξ± i) : i.insertNth x 1 = Pi.mulSingle i x - Fin.insertNth_zero_right π Mathlib.Algebra.Group.Fin.Tuple
{n : β} {Ξ± : Fin (n + 1) β Type u_1} [(j : Fin (n + 1)) β Zero (Ξ± j)] (i : Fin (n + 1)) (x : Ξ± i) : i.insertNth x 0 = Pi.single i x - Fin.insertNth_add π Mathlib.Algebra.Group.Fin.Tuple
{n : β} {Ξ± : Fin (n + 1) β Type u_1} [(j : Fin (n + 1)) β Add (Ξ± j)] (i : Fin (n + 1)) (x y : Ξ± i) (p q : (j : Fin n) β Ξ± (i.succAbove j)) : i.insertNth (x + y) (p + q) = i.insertNth x p + i.insertNth y q - Fin.insertNth_div π Mathlib.Algebra.Group.Fin.Tuple
{n : β} {Ξ± : Fin (n + 1) β Type u_1} [(j : Fin (n + 1)) β Div (Ξ± j)] (i : Fin (n + 1)) (x y : Ξ± i) (p q : (j : Fin n) β Ξ± (i.succAbove j)) : i.insertNth (x / y) (p / q) = i.insertNth x p / i.insertNth y q - Fin.insertNth_mul π Mathlib.Algebra.Group.Fin.Tuple
{n : β} {Ξ± : Fin (n + 1) β Type u_1} [(j : Fin (n + 1)) β Mul (Ξ± j)] (i : Fin (n + 1)) (x y : Ξ± i) (p q : (j : Fin n) β Ξ± (i.succAbove j)) : i.insertNth (x * y) (p * q) = i.insertNth x p * i.insertNth y q - Fin.insertNth_sub π Mathlib.Algebra.Group.Fin.Tuple
{n : β} {Ξ± : Fin (n + 1) β Type u_1} [(j : Fin (n + 1)) β Sub (Ξ± j)] (i : Fin (n + 1)) (x y : Ξ± i) (p q : (j : Fin n) β Ξ± (i.succAbove j)) : i.insertNth (x - y) (p - q) = i.insertNth x p - i.insertNth y q - Fin.insertNth_div_same π Mathlib.Algebra.Group.Fin.Tuple
{n : β} {Ξ± : Fin (n + 1) β Type u_1} [(j : Fin (n + 1)) β Group (Ξ± j)] (i : Fin (n + 1)) (x y : Ξ± i) (p : (j : Fin n) β Ξ± (i.succAbove j)) : i.insertNth x p / i.insertNth y p = Pi.mulSingle i (x / y) - Fin.insertNth_sub_same π Mathlib.Algebra.Group.Fin.Tuple
{n : β} {Ξ± : Fin (n + 1) β Type u_1} [(j : Fin (n + 1)) β AddGroup (Ξ± j)] (i : Fin (n + 1)) (x y : Ξ± i) (p : (j : Fin n) β Ξ± (i.succAbove j)) : i.insertNth x p - i.insertNth y p = Pi.single i (x - y) - Matrix.submatrix_updateCol_succAbove π Mathlib.Data.Matrix.Notation
{Ξ± : Type u} {n : β} {m' : Type uβ} {o' : Type uβ} (A : Matrix m' (Fin n.succ) Ξ±) (v : m' β Ξ±) (f : o' β m') (i : Fin n.succ) : (A.updateCol i v).submatrix f i.succAbove = A.submatrix f i.succAbove - Matrix.submatrix_updateColumn_succAbove π Mathlib.Data.Matrix.Notation
{Ξ± : Type u} {n : β} {m' : Type uβ} {o' : Type uβ} (A : Matrix m' (Fin n.succ) Ξ±) (v : m' β Ξ±) (f : o' β m') (i : Fin n.succ) : (A.updateCol i v).submatrix f i.succAbove = A.submatrix f i.succAbove - Matrix.submatrix_updateRow_succAbove π Mathlib.Data.Matrix.Notation
{Ξ± : Type u} {m : β} {n' : Type uβ} {o' : Type uβ} (A : Matrix (Fin m.succ) n' Ξ±) (v : n' β Ξ±) (f : o' β n') (i : Fin m.succ) : (A.updateRow i v).submatrix i.succAbove f = A.submatrix i.succAbove f - Fin.cycleRange_succAbove π Mathlib.GroupTheory.Perm.Fin
{n : β} (i : Fin (n + 1)) (j : Fin n) : i.cycleRange (i.succAbove j) = j.succ - Fin.cycleRange_symm_succ π Mathlib.GroupTheory.Perm.Fin
{n : β} (i : Fin (n + 1)) (j : Fin n) : (Equiv.symm i.cycleRange) j.succ = i.succAbove j - Fin.succAbove_cycleRange π Mathlib.GroupTheory.Perm.Fin
{n : β} (i j : Fin n) : i.succ.succAbove (i.cycleRange j) = (Equiv.swap 0 i.succ) j.succ - MultilinearMap.map_insertNth_add π Mathlib.LinearAlgebra.Multilinear.Basic
{R : Type uR} {n : β} {M : Fin n.succ β Type v} {Mβ : Type vβ} [Semiring R] [(i : Fin n.succ) β AddCommMonoid (M i)] [AddCommMonoid Mβ] [(i : Fin n.succ) β Module R (M i)] [Module R Mβ] (f : MultilinearMap R M Mβ) (p : Fin (n + 1)) (m : (i : Fin n) β M (p.succAbove i)) (x y : M p) : f (p.insertNth (x + y) m) = f (p.insertNth x m) + f (p.insertNth y m) - MultilinearMap.map_insertNth_smul π Mathlib.LinearAlgebra.Multilinear.Basic
{R : Type uR} {n : β} {M : Fin n.succ β Type v} {Mβ : Type vβ} [Semiring R] [(i : Fin n.succ) β AddCommMonoid (M i)] [AddCommMonoid Mβ] [(i : Fin n.succ) β Module R (M i)] [Module R Mβ] (f : MultilinearMap R M Mβ) (p : Fin (n + 1)) (m : (i : Fin n) β M (p.succAbove i)) (c : R) (x : M p) : f (p.insertNth (c β’ x) m) = c β’ f (p.insertNth x m) - Matrix.det_succ_column_zero π Mathlib.LinearAlgebra.Matrix.Determinant.Basic
{R : Type v} [CommRing R] {n : β} (A : Matrix (Fin n.succ) (Fin n.succ) R) : A.det = β i, (-1) ^ βi * A i 0 * (A.submatrix i.succAbove Fin.succ).det - Matrix.det_succ_row_zero π Mathlib.LinearAlgebra.Matrix.Determinant.Basic
{R : Type v} [CommRing R] {n : β} (A : Matrix (Fin n.succ) (Fin n.succ) R) : A.det = β j, (-1) ^ βj * A 0 j * (A.submatrix Fin.succ j.succAbove).det - Matrix.det_succ_column π Mathlib.LinearAlgebra.Matrix.Determinant.Basic
{R : Type v} [CommRing R] {n : β} (A : Matrix (Fin n.succ) (Fin n.succ) R) (j : Fin n.succ) : A.det = β i, (-1) ^ (βi + βj) * A i j * (A.submatrix i.succAbove j.succAbove).det - Matrix.det_succ_row π Mathlib.LinearAlgebra.Matrix.Determinant.Basic
{R : Type v} [CommRing R] {n : β} (A : Matrix (Fin n.succ) (Fin n.succ) R) (i : Fin n.succ) : A.det = β j, (-1) ^ (βi + βj) * A i j * (A.submatrix i.succAbove j.succAbove).det - Continuous.finInsertNth π Mathlib.Topology.Constructions
{X : Type u} [TopologicalSpace X] {n : β} {Ο : Fin (n + 1) β Type u_8} [(i : Fin (n + 1)) β TopologicalSpace (Ο i)] (i : Fin (n + 1)) {f : X β Ο i} {g : X β (j : Fin n) β Ο (i.succAbove j)} (hf : Continuous f) (hg : Continuous g) : Continuous fun a => i.insertNth (f a) (g a) - Continuous.fin_insertNth π Mathlib.Topology.Constructions
{X : Type u} [TopologicalSpace X] {n : β} {Ο : Fin (n + 1) β Type u_8} [(i : Fin (n + 1)) β TopologicalSpace (Ο i)] (i : Fin (n + 1)) {f : X β Ο i} {g : X β (j : Fin n) β Ο (i.succAbove j)} (hf : Continuous f) (hg : Continuous g) : Continuous fun a => i.insertNth (f a) (g a) - ContinuousAt.finInsertNth π Mathlib.Topology.Constructions
{X : Type u} [TopologicalSpace X] {n : β} {Ο : Fin (n + 1) β Type u_8} [(i : Fin (n + 1)) β TopologicalSpace (Ο i)] (i : Fin (n + 1)) {f : X β Ο i} {g : X β (j : Fin n) β Ο (i.succAbove j)} {x : X} (hf : ContinuousAt f x) (hg : ContinuousAt g x) : ContinuousAt (fun a => i.insertNth (f a) (g a)) x - ContinuousAt.fin_insertNth π Mathlib.Topology.Constructions
{X : Type u} [TopologicalSpace X] {n : β} {Ο : Fin (n + 1) β Type u_8} [(i : Fin (n + 1)) β TopologicalSpace (Ο i)] (i : Fin (n + 1)) {f : X β Ο i} {g : X β (j : Fin n) β Ο (i.succAbove j)} {x : X} (hf : ContinuousAt f x) (hg : ContinuousAt g x) : ContinuousAt (fun a => i.insertNth (f a) (g a)) x - Filter.Tendsto.finInsertNth π Mathlib.Topology.Constructions
{Y : Type v} {n : β} {Ο : Fin (n + 1) β Type u_8} [(i : Fin (n + 1)) β TopologicalSpace (Ο i)] (i : Fin (n + 1)) {f : Y β Ο i} {g : Y β (j : Fin n) β Ο (i.succAbove j)} {l : Filter Y} {x : Ο i} {y : (j : Fin n) β Ο (i.succAbove j)} (hf : Filter.Tendsto f l (nhds x)) (hg : Filter.Tendsto g l (nhds y)) : Filter.Tendsto (fun a => i.insertNth (f a) (g a)) l (nhds (i.insertNth x y)) - Filter.Tendsto.fin_insertNth π Mathlib.Topology.Constructions
{Y : Type v} {n : β} {Ο : Fin (n + 1) β Type u_8} [(i : Fin (n + 1)) β TopologicalSpace (Ο i)] (i : Fin (n + 1)) {f : Y β Ο i} {g : Y β (j : Fin n) β Ο (i.succAbove j)} {l : Filter Y} {x : Ο i} {y : (j : Fin n) β Ο (i.succAbove j)} (hf : Filter.Tendsto f l (nhds x)) (hg : Filter.Tendsto g l (nhds y)) : Filter.Tendsto (fun a => i.insertNth (f a) (g a)) l (nhds (i.insertNth x y)) - ContinuousOn.finInsertNth π Mathlib.Topology.ContinuousOn
{Ξ± : Type u_1} [TopologicalSpace Ξ±] {n : β} {Ο : Fin (n + 1) β Type u_5} [(i : Fin (n + 1)) β TopologicalSpace (Ο i)] (i : Fin (n + 1)) {f : Ξ± β Ο i} {g : Ξ± β (j : Fin n) β Ο (i.succAbove j)} {s : Set Ξ±} (hf : ContinuousOn f s) (hg : ContinuousOn g s) : ContinuousOn (fun a => i.insertNth (f a) (g a)) s - ContinuousOn.fin_insertNth π Mathlib.Topology.ContinuousOn
{Ξ± : Type u_1} [TopologicalSpace Ξ±] {n : β} {Ο : Fin (n + 1) β Type u_5} [(i : Fin (n + 1)) β TopologicalSpace (Ο i)] (i : Fin (n + 1)) {f : Ξ± β Ο i} {g : Ξ± β (j : Fin n) β Ο (i.succAbove j)} {s : Set Ξ±} (hf : ContinuousOn f s) (hg : ContinuousOn g s) : ContinuousOn (fun a => i.insertNth (f a) (g a)) s - ContinuousWithinAt.finInsertNth π Mathlib.Topology.ContinuousOn
{Ξ± : Type u_1} [TopologicalSpace Ξ±] {n : β} {Ο : Fin (n + 1) β Type u_5} [(i : Fin (n + 1)) β TopologicalSpace (Ο i)] (i : Fin (n + 1)) {f : Ξ± β Ο i} {g : Ξ± β (j : Fin n) β Ο (i.succAbove j)} {a : Ξ±} {s : Set Ξ±} (hf : ContinuousWithinAt f s a) (hg : ContinuousWithinAt g s a) : ContinuousWithinAt (fun a => i.insertNth (f a) (g a)) s a - ContinuousWithinAt.fin_insertNth π Mathlib.Topology.ContinuousOn
{Ξ± : Type u_1} [TopologicalSpace Ξ±] {n : β} {Ο : Fin (n + 1) β Type u_5} [(i : Fin (n + 1)) β TopologicalSpace (Ο i)] (i : Fin (n + 1)) {f : Ξ± β Ο i} {g : Ξ± β (j : Fin n) β Ο (i.succAbove j)} {a : Ξ±} {s : Set Ξ±} (hf : ContinuousWithinAt f s a) (hg : ContinuousWithinAt g s a) : ContinuousWithinAt (fun a => i.insertNth (f a) (g a)) s a - Fin.dist_insertNth_insertNth π Mathlib.Topology.MetricSpace.Pseudo.Pi
{n : β} {Ξ± : Fin (n + 1) β Type u_4} [(i : Fin (n + 1)) β PseudoMetricSpace (Ξ± i)] (i : Fin (n + 1)) (x y : Ξ± i) (f g : (j : Fin n) β Ξ± (i.succAbove j)) : dist (i.insertNth x f) (i.insertNth y g) = max (dist x y) (dist f g) - Fin.nndist_insertNth_insertNth π Mathlib.Topology.MetricSpace.Pseudo.Pi
{n : β} {Ξ± : Fin (n + 1) β Type u_4} [(i : Fin (n + 1)) β PseudoMetricSpace (Ξ± i)] (i : Fin (n + 1)) (x y : Ξ± i) (f g : (j : Fin n) β Ξ± (i.succAbove j)) : nndist (i.insertNth x f) (i.insertNth y g) = max (nndist x y) (nndist f g) - Fin.succAbove.eq_1 π Mathlib.LinearAlgebra.Matrix.Adjugate
{n : β} (p : Fin (n + 1)) (i : Fin n) : p.succAbove i = if i.castSucc < p then i.castSucc else i.succ - Matrix.adjugate_fin_succ_eq_det_submatrix π Mathlib.LinearAlgebra.Matrix.Adjugate
{Ξ± : Type w} [CommRing Ξ±] {n : β} (A : Matrix (Fin n.succ) (Fin n.succ) Ξ±) (i j : Fin n.succ) : A.adjugate i j = (-1) ^ (βj + βi) * (A.submatrix j.succAbove i.succAbove).det - LinearMap.uncurryMid π Mathlib.LinearAlgebra.Multilinear.Curry
{R : Type uR} {n : β} {M : Fin n.succ β Type v} {Mβ : Type vβ} [CommSemiring R] [(i : Fin n.succ) β AddCommMonoid (M i)] [AddCommMonoid Mβ] [(i : Fin n.succ) β Module R (M i)] [Module R Mβ] (p : Fin (n + 1)) (f : M p ββ[R] MultilinearMap R (fun i => M (p.succAbove i)) Mβ) : MultilinearMap R M Mβ - MultilinearMap.curryMid π Mathlib.LinearAlgebra.Multilinear.Curry
{R : Type uR} {n : β} {M : Fin n.succ β Type v} {Mβ : Type vβ} [CommSemiring R] [(i : Fin n.succ) β AddCommMonoid (M i)] [AddCommMonoid Mβ] [(i : Fin n.succ) β Module R (M i)] [Module R Mβ] (p : Fin (n + 1)) (f : MultilinearMap R M Mβ) : M p ββ[R] MultilinearMap R (fun i => M (p.succAbove i)) Mβ - LinearMap.curryMid_uncurryMid π Mathlib.LinearAlgebra.Multilinear.Curry
{R : Type uR} {n : β} {M : Fin n.succ β Type v} {Mβ : Type vβ} [CommSemiring R] [(i : Fin n.succ) β AddCommMonoid (M i)] [AddCommMonoid Mβ] [(i : Fin n.succ) β Module R (M i)] [Module R Mβ] (i : Fin (n + 1)) (f : M i ββ[R] MultilinearMap R (fun j => M (i.succAbove j)) Mβ) : MultilinearMap.curryMid i (LinearMap.uncurryMid i f) = f - MultilinearMap.curryMid_apply_apply π Mathlib.LinearAlgebra.Multilinear.Curry
{R : Type uR} {n : β} {M : Fin n.succ β Type v} {Mβ : Type vβ} [CommSemiring R] [(i : Fin n.succ) β AddCommMonoid (M i)] [AddCommMonoid Mβ] [(i : Fin n.succ) β Module R (M i)] [Module R Mβ] (p : Fin (n + 1)) (f : MultilinearMap R M Mβ) (x : M p) (m : (i : Fin n) β M (p.succAbove i)) : ((MultilinearMap.curryMid p f) x) m = f (p.insertNth x m) - LinearMap.uncurryMid_apply π Mathlib.LinearAlgebra.Multilinear.Curry
{R : Type uR} {n : β} {M : Fin n.succ β Type v} {Mβ : Type vβ} [CommSemiring R] [(i : Fin n.succ) β AddCommMonoid (M i)] [AddCommMonoid Mβ] [(i : Fin n.succ) β Module R (M i)] [Module R Mβ] (p : Fin (n + 1)) (f : M p ββ[R] MultilinearMap R (fun i => M (p.succAbove i)) Mβ) (m : (i : Fin n.succ) β M i) : (LinearMap.uncurryMid p f) m = (f (m p)) (p.removeNth m) - MultilinearMap.curryMidLinearEquiv π Mathlib.LinearAlgebra.Multilinear.Curry
(R : Type uR) {n : β} (M : Fin n.succ β Type v) (Mβ : Type vβ) [CommSemiring R] [(i : Fin n.succ) β AddCommMonoid (M i)] [AddCommMonoid Mβ] [(i : Fin n.succ) β Module R (M i)] [Module R Mβ] (p : Fin (n + 1)) : MultilinearMap R M Mβ ββ[R] M p ββ[R] MultilinearMap R (fun i => M (p.succAbove i)) Mβ - MultilinearMap.curryMidLinearEquiv_apply π Mathlib.LinearAlgebra.Multilinear.Curry
(R : Type uR) {n : β} (M : Fin n.succ β Type v) (Mβ : Type vβ) [CommSemiring R] [(i : Fin n.succ) β AddCommMonoid (M i)] [AddCommMonoid Mβ] [(i : Fin n.succ) β Module R (M i)] [Module R Mβ] (p : Fin (n + 1)) (f : MultilinearMap R M Mβ) : (MultilinearMap.curryMidLinearEquiv R M Mβ p) f = MultilinearMap.curryMid p f - MultilinearMap.curryMidLinearEquiv_symm_apply π Mathlib.LinearAlgebra.Multilinear.Curry
(R : Type uR) {n : β} (M : Fin n.succ β Type v) (Mβ : Type vβ) [CommSemiring R] [(i : Fin n.succ) β AddCommMonoid (M i)] [AddCommMonoid Mβ] [(i : Fin n.succ) β Module R (M i)] [Module R Mβ] (p : Fin (n + 1)) (f : M p ββ[R] MultilinearMap R (fun i => M (p.succAbove i)) Mβ) : (MultilinearMap.curryMidLinearEquiv R M Mβ p).symm f = LinearMap.uncurryMid p f - MeasurableEquiv.piFinSuccAbove π Mathlib.MeasureTheory.MeasurableSpace.Embedding
{n : β} (Ξ± : Fin (n + 1) β Type u_8) [(i : Fin (n + 1)) β MeasurableSpace (Ξ± i)] (i : Fin (n + 1)) : ((j : Fin (n + 1)) β Ξ± j) βα΅ Ξ± i Γ ((j : Fin n) β Ξ± (i.succAbove j)) - MeasurableEquiv.piFinSuccAbove_apply π Mathlib.MeasureTheory.MeasurableSpace.Embedding
{n : β} (Ξ± : Fin (n + 1) β Type u_8) [(i : Fin (n + 1)) β MeasurableSpace (Ξ± i)] (i : Fin (n + 1)) : β(MeasurableEquiv.piFinSuccAbove Ξ± i) = β(Fin.insertNthEquiv Ξ± i).symm - MeasurableEquiv.piFinSuccAbove_symm_apply π Mathlib.MeasureTheory.MeasurableSpace.Embedding
{n : β} (Ξ± : Fin (n + 1) β Type u_8) [(i : Fin (n + 1)) β MeasurableSpace (Ξ± i)] (i : Fin (n + 1)) : β(MeasurableEquiv.piFinSuccAbove Ξ± i).symm = β(Fin.insertNthEquiv Ξ± i) - MeasureTheory.measurePreserving_piFinSuccAbove π Mathlib.MeasureTheory.Constructions.Pi
{n : β} {Ξ± : Fin (n + 1) β Type u} {m : (i : Fin (n + 1)) β MeasurableSpace (Ξ± i)} (ΞΌ : (i : Fin (n + 1)) β MeasureTheory.Measure (Ξ± i)) [β (i : Fin (n + 1)), MeasureTheory.SigmaFinite (ΞΌ i)] (i : Fin (n + 1)) : MeasureTheory.MeasurePreserving (β(MeasurableEquiv.piFinSuccAbove Ξ± i)) (MeasureTheory.Measure.pi ΞΌ) ((ΞΌ i).prod (MeasureTheory.Measure.pi fun j => ΞΌ (i.succAbove j))) - MeasureTheory.volume_preserving_piFinSuccAbove π Mathlib.MeasureTheory.Constructions.Pi
{n : β} (Ξ± : Fin (n + 1) β Type u) [(i : Fin (n + 1)) β MeasureTheory.MeasureSpace (Ξ± i)] [β (i : Fin (n + 1)), MeasureTheory.SigmaFinite MeasureTheory.volume] (i : Fin (n + 1)) : MeasureTheory.MeasurePreserving (β(MeasurableEquiv.piFinSuccAbove Ξ± i)) MeasureTheory.volume MeasureTheory.volume - Fin.insertNthOrderIso π Mathlib.Order.Fin.Tuple
{n : β} (Ξ± : Fin (n + 1) β Type u_2) [(i : Fin (n + 1)) β LE (Ξ± i)] (p : Fin (n + 1)) : Ξ± p Γ ((i : Fin n) β Ξ± (p.succAbove i)) βo ((i : Fin (n + 1)) β Ξ± i) - Fin.preimage_insertNth_Icc_of_not_mem π Mathlib.Order.Fin.Tuple
{n : β} {Ξ± : Fin (n + 1) β Type u_1} [(i : Fin (n + 1)) β Preorder (Ξ± i)] {i : Fin (n + 1)} {x : Ξ± i} {qβ qβ : (j : Fin (n + 1)) β Ξ± j} (hx : x β Set.Icc (qβ i) (qβ i)) : i.insertNth x β»ΒΉ' Set.Icc qβ qβ = β - Fin.preimage_insertNth_Icc_of_mem π Mathlib.Order.Fin.Tuple
{n : β} {Ξ± : Fin (n + 1) β Type u_1} [(i : Fin (n + 1)) β Preorder (Ξ± i)] {i : Fin (n + 1)} {x : Ξ± i} {qβ qβ : (j : Fin (n + 1)) β Ξ± j} (hx : x β Set.Icc (qβ i) (qβ i)) : i.insertNth x β»ΒΉ' Set.Icc qβ qβ = Set.Icc (fun j => qβ (i.succAbove j)) fun j => qβ (i.succAbove j) - Fin.insertNthOrderIso_toEquiv π Mathlib.Order.Fin.Tuple
{n : β} (Ξ± : Fin (n + 1) β Type u_2) [(i : Fin (n + 1)) β LE (Ξ± i)] (p : Fin (n + 1)) : (Fin.insertNthOrderIso Ξ± p).toEquiv = Fin.insertNthEquiv Ξ± p - Fin.insertNth_mem_Icc π Mathlib.Order.Fin.Tuple
{n : β} {Ξ± : Fin (n + 1) β Type u_1} [(i : Fin (n + 1)) β Preorder (Ξ± i)] {i : Fin (n + 1)} {x : Ξ± i} {p : (j : Fin n) β Ξ± (i.succAbove j)} {qβ qβ : (j : Fin (n + 1)) β Ξ± j} : i.insertNth x p β Set.Icc qβ qβ β x β Set.Icc (qβ i) (qβ i) β§ p β Set.Icc (fun j => qβ (i.succAbove j)) fun j => qβ (i.succAbove j) - Fin.insertNthOrderIso.eq_1 π Mathlib.Order.Fin.Tuple
{n : β} (Ξ± : Fin (n + 1) β Type u_2) [(i : Fin (n + 1)) β LE (Ξ± i)] (p : Fin (n + 1)) : Fin.insertNthOrderIso Ξ± p = { toEquiv := Fin.insertNthEquiv Ξ± p, map_rel_iff' := β― } - Fin.insertNthOrderIso_apply π Mathlib.Order.Fin.Tuple
{n : β} (Ξ± : Fin (n + 1) β Type u_2) [(i : Fin (n + 1)) β LE (Ξ± i)] (p : Fin (n + 1)) (f : Ξ± p Γ ((i : Fin n) β Ξ± (p.succAbove i))) (j : Fin (n + 1)) : (Fin.insertNthOrderIso Ξ± p) f j = p.insertNth f.1 f.2 j - Fin.insertNthOrderIso_zero π Mathlib.Order.Fin.Tuple
{n : β} (Ξ± : Fin (n + 1) β Type u_2) [(i : Fin (n + 1)) β LE (Ξ± i)] : Fin.insertNthOrderIso Ξ± 0 = Fin.consOrderIso Ξ± - finSuccAboveOrderIso_apply π Mathlib.Order.Fin.Tuple
{n : β} (p : Fin (n + 1)) (i : Fin n) : (finSuccAboveOrderIso p) i = β¨p.succAbove i, β―β© - Fin.insertNthOrderIso_symm_apply π Mathlib.Order.Fin.Tuple
{n : β} (Ξ± : Fin (n + 1) β Type u_2) [(i : Fin (n + 1)) β LE (Ξ± i)] (p : Fin (n + 1)) (f : (i : Fin (n + 1)) β Ξ± i) : (RelIso.symm (Fin.insertNthOrderIso Ξ± p)) f = (f p, p.removeNth f) - BoxIntegral.Box.face_lower π Mathlib.Analysis.BoxIntegral.Box.Basic
{n : β} (I : BoxIntegral.Box (Fin (n + 1))) (i : Fin (n + 1)) (aβ : Fin n) : (I.face i).lower aβ = I.lower (i.succAbove aβ) - BoxIntegral.Box.face_upper π Mathlib.Analysis.BoxIntegral.Box.Basic
{n : β} (I : BoxIntegral.Box (Fin (n + 1))) (i : Fin (n + 1)) (aβ : Fin n) : (I.face i).upper aβ = I.upper (i.succAbove aβ) - BoxIntegral.Box.face_mk π Mathlib.Analysis.BoxIntegral.Box.Basic
{n : β} (l u : Fin (n + 1) β β) (h : β (i : Fin (n + 1)), l i < u i) (i : Fin (n + 1)) : { lower := l, upper := u, lower_lt_upper := h }.face i = { lower := l β i.succAbove, upper := u β i.succAbove, lower_lt_upper := β― } - BoxIntegral.Box.face.eq_1 π Mathlib.Analysis.BoxIntegral.Partition.Additive
{n : β} (I : BoxIntegral.Box (Fin (n + 1))) (i : Fin (n + 1)) : I.face i = { lower := I.lower β i.succAbove, upper := I.upper β i.succAbove, lower_lt_upper := β― } - Fin.insertNth_mem_piFinset_insertNth π Mathlib.Data.Fin.Tuple.Finset
{n : β} {Ξ± : Fin (n + 1) β Type u_1} {p : Fin (n + 1)} {x_pivot : Ξ± p} {x_remove : (i : Fin n) β Ξ± (p.succAbove i)} {s_pivot : Finset (Ξ± p)} {s_remove : (i : Fin n) β Finset (Ξ± (p.succAbove i))} : p.insertNth x_pivot x_remove β Fintype.piFinset (p.insertNth s_pivot s_remove) β x_pivot β s_pivot β§ x_remove β Fintype.piFinset s_remove - Fin.mem_piFinset_iff_pivot_removeNth π Mathlib.Data.Fin.Tuple.Finset
{n : β} {Ξ± : Fin (n + 1) β Type u_1} {f : (i : Fin (n + 1)) β Ξ± i} {s : (i : Fin (n + 1)) β Finset (Ξ± i)} (p : Fin (n + 1)) : f β Fintype.piFinset s β f p β s p β§ p.removeNth f β Fintype.piFinset (p.removeNth s) - Finset.card_insertNthEquiv_filter_piFinset π Mathlib.Data.Fin.Tuple.Finset
{n : β} {Ξ± : Fin (n + 1) β Type u_1} {p : Fin (n + 1)} (S : (i : Fin (n + 1)) β Finset (Ξ± i)) (P : ((i : Fin n) β Ξ± (p.succAbove i)) β Prop) [DecidablePred P] : {r β Fintype.piFinset S | P (p.removeNth r)}.card = (S p).card * {r β Fintype.piFinset (p.removeNth S) | P r}.card - Finset.filter_piFinset_eq_map_insertNthEquiv π Mathlib.Data.Fin.Tuple.Finset
{n : β} {Ξ± : Fin (n + 1) β Type u_1} {p : Fin (n + 1)} (S : (i : Fin (n + 1)) β Finset (Ξ± i)) (P : ((i : Fin n) β Ξ± (p.succAbove i)) β Prop) [DecidablePred P] : {r β Fintype.piFinset S | P (p.removeNth r)} = Finset.map (Fin.insertNthEquiv Ξ± p).toEmbedding (S p ΓΛ’ {r β Fintype.piFinset (p.removeNth S) | P r}) - Finset.map_insertNthEquiv_filter_piFinset π Mathlib.Data.Fin.Tuple.Finset
{n : β} {Ξ± : Fin (n + 1) β Type u_1} {p : Fin (n + 1)} (S : (i : Fin (n + 1)) β Finset (Ξ± i)) (P : ((i : Fin n) β Ξ± (p.succAbove i)) β Prop) [DecidablePred P] : Finset.map (Fin.insertNthEquiv Ξ± p).symm.toEmbedding ({r β Fintype.piFinset S | P (p.removeNth r)}) = S p ΓΛ’ {r β Fintype.piFinset (p.removeNth S) | P r} - ContinuousMultilinearMap.norm_map_insertNth_le π Mathlib.Analysis.NormedSpace.Multilinear.Curry
{π : Type u} {n : β} {Ei : Fin n.succ β Type wEi} {G : Type wG} [NontriviallyNormedField π] [(i : Fin n.succ) β NormedAddCommGroup (Ei i)] [(i : Fin n.succ) β NormedSpace π (Ei i)] [NormedAddCommGroup G] [NormedSpace π G] (f : ContinuousMultilinearMap π Ei G) {i : Fin (n + 1)} (x : Ei i) (m : (j : Fin n) β Ei (i.succAbove j)) : βf (i.insertNth x m)β β€ βfβ * βxβ * β i_1, βm i_1β - ContinuousLinearMap.uncurryMid π Mathlib.Analysis.NormedSpace.Multilinear.Curry
{π : Type u} {n : β} {Ei : Fin n.succ β Type wEi} {G : Type wG} [NontriviallyNormedField π] [(i : Fin n.succ) β NormedAddCommGroup (Ei i)] [(i : Fin n.succ) β NormedSpace π (Ei i)] [NormedAddCommGroup G] [NormedSpace π G] (p : Fin (n + 1)) (f : Ei p βL[π] ContinuousMultilinearMap π (fun i => Ei (p.succAbove i)) G) : ContinuousMultilinearMap π Ei G - ContinuousMultilinearMap.curryMid π Mathlib.Analysis.NormedSpace.Multilinear.Curry
{π : Type u} {n : β} {Ei : Fin n.succ β Type wEi} {G : Type wG} [NontriviallyNormedField π] [(i : Fin n.succ) β NormedAddCommGroup (Ei i)] [(i : Fin n.succ) β NormedSpace π (Ei i)] [NormedAddCommGroup G] [NormedSpace π G] (p : Fin (n + 1)) (f : ContinuousMultilinearMap π Ei G) : Ei p βL[π] ContinuousMultilinearMap π (fun i => Ei (p.succAbove i)) G - ContinuousMultilinearMap.norm_curryMid π Mathlib.Analysis.NormedSpace.Multilinear.Curry
{π : Type u} {n : β} {Ei : Fin n.succ β Type wEi} {G : Type wG} [NontriviallyNormedField π] [(i : Fin n.succ) β NormedAddCommGroup (Ei i)] [(i : Fin n.succ) β NormedSpace π (Ei i)] [NormedAddCommGroup G] [NormedSpace π G] (p : Fin (n + 1)) (f : ContinuousMultilinearMap π Ei G) : βContinuousMultilinearMap.curryMid p fβ = βfβ - ContinuousLinearMap.curryMid_uncurryMid π Mathlib.Analysis.NormedSpace.Multilinear.Curry
{π : Type u} {n : β} {Ei : Fin n.succ β Type wEi} {G : Type wG} [NontriviallyNormedField π] [(i : Fin n.succ) β NormedAddCommGroup (Ei i)] [(i : Fin n.succ) β NormedSpace π (Ei i)] [NormedAddCommGroup G] [NormedSpace π G] (p : Fin (n + 1)) (f : Ei p βL[π] ContinuousMultilinearMap π (fun i => Ei (p.succAbove i)) G) : ContinuousMultilinearMap.curryMid p (ContinuousLinearMap.uncurryMid p f) = f - ContinuousLinearMap.norm_uncurryMid π Mathlib.Analysis.NormedSpace.Multilinear.Curry
{π : Type u} {n : β} {Ei : Fin n.succ β Type wEi} {G : Type wG} [NontriviallyNormedField π] [(i : Fin n.succ) β NormedAddCommGroup (Ei i)] [(i : Fin n.succ) β NormedSpace π (Ei i)] [NormedAddCommGroup G] [NormedSpace π G] (p : Fin (n + 1)) (f : Ei p βL[π] ContinuousMultilinearMap π (fun i => Ei (p.succAbove i)) G) : βContinuousLinearMap.uncurryMid p fβ = βfβ - ContinuousMultilinearMap.curryMid_apply π Mathlib.Analysis.NormedSpace.Multilinear.Curry
{π : Type u} {n : β} {Ei : Fin n.succ β Type wEi} {G : Type wG} [NontriviallyNormedField π] [(i : Fin n.succ) β NormedAddCommGroup (Ei i)] [(i : Fin n.succ) β NormedSpace π (Ei i)] [NormedAddCommGroup G] [NormedSpace π G] (p : Fin (n + 1)) (f : ContinuousMultilinearMap π Ei G) (x : Ei p) (m : (i : Fin n) β Ei (p.succAbove i)) : ((ContinuousMultilinearMap.curryMid p f) x) m = f (p.insertNth x m) - ContinuousLinearMap.uncurryMid_apply π Mathlib.Analysis.NormedSpace.Multilinear.Curry
{π : Type u} {n : β} {Ei : Fin n.succ β Type wEi} {G : Type wG} [NontriviallyNormedField π] [(i : Fin n.succ) β NormedAddCommGroup (Ei i)] [(i : Fin n.succ) β NormedSpace π (Ei i)] [NormedAddCommGroup G] [NormedSpace π G] (p : Fin (n + 1)) (f : Ei p βL[π] ContinuousMultilinearMap π (fun i => Ei (p.succAbove i)) G) (m : (i : Fin n.succ) β Ei i) : (ContinuousLinearMap.uncurryMid p f) m = (f (m p)) (p.removeNth m) - ContinuousLinearMap.norm_map_removeNth_le π Mathlib.Analysis.NormedSpace.Multilinear.Curry
{π : Type u} {n : β} {Ei : Fin n.succ β Type wEi} {G : Type wG} [NontriviallyNormedField π] [(i : Fin n.succ) β NormedAddCommGroup (Ei i)] [(i : Fin n.succ) β NormedSpace π (Ei i)] [NormedAddCommGroup G] [NormedSpace π G] {i : Fin (n + 1)} (f : Ei i βL[π] ContinuousMultilinearMap π (fun j => Ei (i.succAbove j)) G) (m : (i : Fin n.succ) β Ei i) : β(f (m i)) (i.removeNth m)β β€ βfβ * β j, βm jβ - ContinuousMultilinearMap.curryMidEquiv π Mathlib.Analysis.NormedSpace.Multilinear.Curry
(π : Type u) {n : β} (Ei : Fin n.succ β Type wEi) (G : Type wG) [NontriviallyNormedField π] [(i : Fin n.succ) β NormedAddCommGroup (Ei i)] [(i : Fin n.succ) β NormedSpace π (Ei i)] [NormedAddCommGroup G] [NormedSpace π G] (p : Fin (n + 1)) : ContinuousMultilinearMap π Ei G ββα΅’[π] Ei p βL[π] ContinuousMultilinearMap π (fun i => Ei (p.succAbove i)) G - ContinuousMultilinearMap.curryMidEquiv_apply π Mathlib.Analysis.NormedSpace.Multilinear.Curry
(π : Type u) {n : β} (Ei : Fin n.succ β Type wEi) (G : Type wG) [NontriviallyNormedField π] [(i : Fin n.succ) β NormedAddCommGroup (Ei i)] [(i : Fin n.succ) β NormedSpace π (Ei i)] [NormedAddCommGroup G] [NormedSpace π G] (p : Fin (n + 1)) (f : ContinuousMultilinearMap π Ei G) : (ContinuousMultilinearMap.curryMidEquiv π Ei G p) f = ContinuousMultilinearMap.curryMid p f - ContinuousMultilinearMap.curryMidEquiv_symm_apply π Mathlib.Analysis.NormedSpace.Multilinear.Curry
(π : Type u) {n : β} (Ei : Fin n.succ β Type wEi) (G : Type wG) [NontriviallyNormedField π] [(i : Fin n.succ) β NormedAddCommGroup (Ei i)] [(i : Fin n.succ) β NormedSpace π (Ei i)] [NormedAddCommGroup G] [NormedSpace π G] (p : Fin (n + 1)) (f : Ei p βL[π] ContinuousMultilinearMap π (fun i => Ei (p.succAbove i)) G) : (ContinuousMultilinearMap.curryMidEquiv π Ei G p).symm f = ContinuousLinearMap.uncurryMid p f - MeasureTheory.integral_divergence_of_hasFDerivAt_off_countable' π Mathlib.MeasureTheory.Integral.DivergenceTheorem
{E : Type u} [NormedAddCommGroup E] [NormedSpace β E] {n : β} (a b : Fin (n + 1) β β) (hle : a β€ b) (f : Fin (n + 1) β (Fin (n + 1) β β) β E) (f' : Fin (n + 1) β (Fin (n + 1) β β) β (Fin (n + 1) β β) βL[β] E) (s : Set (Fin (n + 1) β β)) (hs : s.Countable) (Hc : β (i : Fin (n + 1)), ContinuousOn (f i) (Set.Icc a b)) (Hd : β x β (Set.univ.pi fun i => Set.Ioo (a i) (b i)) \ s, β (i : Fin (n + 1)), HasFDerivAt (f i) (f' i x) x) (Hi : MeasureTheory.IntegrableOn (fun x => β i, (f' i x) (Pi.single i 1)) (Set.Icc a b) MeasureTheory.volume) : β« (x : Fin (n + 1) β β) in Set.Icc a b, β i, (f' i x) (Pi.single i 1) = β i, ((β« (x : Fin n β β) in Set.Icc (a β i.succAbove) (b β i.succAbove), f i (i.insertNth (b i) x)) - β« (x : Fin n β β) in Set.Icc (a β i.succAbove) (b β i.succAbove), f i (i.insertNth (a i) x)) - MeasureTheory.integral_divergence_of_hasFDerivWithinAt_off_countable' π Mathlib.MeasureTheory.Integral.DivergenceTheorem
{E : Type u} [NormedAddCommGroup E] [NormedSpace β E] {n : β} (a b : Fin (n + 1) β β) (hle : a β€ b) (f : Fin (n + 1) β (Fin (n + 1) β β) β E) (f' : Fin (n + 1) β (Fin (n + 1) β β) β (Fin (n + 1) β β) βL[β] E) (s : Set (Fin (n + 1) β β)) (hs : s.Countable) (Hc : β (i : Fin (n + 1)), ContinuousOn (f i) (Set.Icc a b)) (Hd : β x β (Set.univ.pi fun i => Set.Ioo (a i) (b i)) \ s, β (i : Fin (n + 1)), HasFDerivAt (f i) (f' i x) x) (Hi : MeasureTheory.IntegrableOn (fun x => β i, (f' i x) (Pi.single i 1)) (Set.Icc a b) MeasureTheory.volume) : β« (x : Fin (n + 1) β β) in Set.Icc a b, β i, (f' i x) (Pi.single i 1) = β i, ((β« (x : Fin n β β) in Set.Icc (a β i.succAbove) (b β i.succAbove), f i (i.insertNth (b i) x)) - β« (x : Fin n β β) in Set.Icc (a β i.succAbove) (b β i.succAbove), f i (i.insertNth (a i) x)) - MeasureTheory.integral_divergence_of_hasFDerivAt_off_countable π Mathlib.MeasureTheory.Integral.DivergenceTheorem
{E : Type u} [NormedAddCommGroup E] [NormedSpace β E] {n : β} (a b : Fin (n + 1) β β) (hle : a β€ b) (f : (Fin (n + 1) β β) β Fin (n + 1) β E) (f' : (Fin (n + 1) β β) β (Fin (n + 1) β β) βL[β] Fin (n + 1) β E) (s : Set (Fin (n + 1) β β)) (hs : s.Countable) (Hc : ContinuousOn f (Set.Icc a b)) (Hd : β x β (Set.univ.pi fun i => Set.Ioo (a i) (b i)) \ s, HasFDerivAt f (f' x) x) (Hi : MeasureTheory.IntegrableOn (fun x => β i, (f' x) (Pi.single i 1) i) (Set.Icc a b) MeasureTheory.volume) : β« (x : Fin (n + 1) β β) in Set.Icc a b, β i, (f' x) (Pi.single i 1) i = β i, ((β« (x : Fin n β β) in Set.Icc (a β i.succAbove) (b β i.succAbove), f (i.insertNth (b i) x) i) - β« (x : Fin n β β) in Set.Icc (a β i.succAbove) (b β i.succAbove), f (i.insertNth (a i) x) i) - MeasureTheory.integral_divergence_of_hasFDerivWithinAt_off_countable π Mathlib.MeasureTheory.Integral.DivergenceTheorem
{E : Type u} [NormedAddCommGroup E] [NormedSpace β E] {n : β} (a b : Fin (n + 1) β β) (hle : a β€ b) (f : (Fin (n + 1) β β) β Fin (n + 1) β E) (f' : (Fin (n + 1) β β) β (Fin (n + 1) β β) βL[β] Fin (n + 1) β E) (s : Set (Fin (n + 1) β β)) (hs : s.Countable) (Hc : ContinuousOn f (Set.Icc a b)) (Hd : β x β (Set.univ.pi fun i => Set.Ioo (a i) (b i)) \ s, HasFDerivAt f (f' x) x) (Hi : MeasureTheory.IntegrableOn (fun x => β i, (f' x) (Pi.single i 1) i) (Set.Icc a b) MeasureTheory.volume) : β« (x : Fin (n + 1) β β) in Set.Icc a b, β i, (f' x) (Pi.single i 1) i = β i, ((β« (x : Fin n β β) in Set.Icc (a β i.succAbove) (b β i.succAbove), f (i.insertNth (b i) x) i) - β« (x : Fin n β β) in Set.Icc (a β i.succAbove) (b β i.succAbove), f (i.insertNth (a i) x) i)
About
Loogle searches Lean and Mathlib definitions and theorems.
You can use Loogle from within the Lean4 VSCode language extension
using (by default) Ctrl-K Ctrl-S. You can also try the
#loogle
command from LeanSearchClient,
the CLI version, the Loogle
VS Code extension, the lean.nvim
integration or the Zulip bot.
Usage
Loogle finds definitions and lemmas in various ways:
By constant:
πReal.sin
finds all lemmas whose statement somehow mentions the sine function.By lemma name substring:
π"differ"
finds all lemmas that have"differ"
somewhere in their lemma name.By subexpression:
π_ * (_ ^ _)
finds all lemmas whose statements somewhere include a product where the second argument is raised to some power.The pattern can also be non-linear, as in
πReal.sqrt ?a * Real.sqrt ?a
If the pattern has parameters, they are matched in any order. Both of these will find
List.map
:
π(?a -> ?b) -> List ?a -> List ?b
πList ?a -> (?a -> ?b) -> List ?b
By main conclusion:
π|- tsum _ = _ * tsum _
finds all lemmas where the conclusion (the subexpression to the right of allβ
andβ
) has the given shape.As before, if the pattern has parameters, they are matched against the hypotheses of the lemma in any order; for example,
π|- _ < _ β tsum _ < tsum _
will findtsum_lt_tsum
even though the hypothesisf i < g i
is not the last.
If you pass more than one such search filter, separated by commas
Loogle will return lemmas which match all of them. The
search
π Real.sin, "two", tsum, _ * _, _ ^ _, |- _ < _ β _
would find all lemmas which mention the constants Real.sin
and tsum
, have "two"
as a substring of the
lemma name, include a product and a power somewhere in the type,
and have a hypothesis of the form _ < _
(if
there were any such lemmas). Metavariables (?a
) are
assigned independently in each filter.
The #lucky
button will directly send you to the
documentation of the first hit.
Source code
You can find the source code for this service at https://github.com/nomeata/loogle. The https://loogle.lean-lang.org/ service is provided by the Lean FRO.
This is Loogle revision 19971e9
serving mathlib revision 40fea08