ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- PUnit.himp_eq
@[simp, nolint simpNF]
theorem himp_eq : a ⇨ b = unit 
Arguments: (a b : PUnit.{u + 1})
Goal: a ⇨ b = PUnit.unit
-- ωCPO.coe_of
@[simp]
theorem coe_of (α : Type*) [OmegaCompletePartialOrder α] : ↥(of α) = α 
Arguments: (α : Type u_1) [OmegaCompletePartialOrder α]
Goal: ↑(ωCPO.of α) = α
-- Set.Iic.isCompactElement
theorem isCompactElement {a : α} {b : Iic a} (h : CompleteLattice.IsCompactElement (b : α)) :
    CompleteLattice.IsCompactElement b 
Arguments: {α : Type u_2} [CompleteLattice α] {a : α} {b : ↑(Set.Iic a)} (h : CompleteLattice.IsCompactElement ↑b)
Goal: CompleteLattice.IsCompactElement b
-- complementedLattice_of_complementedLattice_Iic
theorem complementedLattice_of_complementedLattice_Iic
    [IsModularLattice α] [IsCompactlyGenerated α]
    {s : Set ι} {f : ι → α}
    (h : ∀ i ∈ s, ComplementedLattice <| Iic (f i))
    (h' : ⨆ i ∈ s, f i = ⊤) :
    ComplementedLattice α 
Arguments: {ι : Type u_1} {α : Type u_2} [CompleteLattice α] [IsModularLattice α] [IsCompactlyGenerated α] {s : Set ι} {f : ι → α} (h : ∀ i ∈ s, ComplementedLattice ↑(Set.Iic (f i))) (h' : ⨆ i ∈ s, f i = ⊤)
Goal: ComplementedLattice α
-- RelSeries.step
structure RelSeries where
    length : ℕ
    toFun : Fin (length + 1) → α
    step : ∀ (i : Fin length), r (toFun (Fin.castSucc i)) (toFun i.succ)
Arguments: {α : Type u_1} {r : Rel α α} (self : RelSeries r) (i : Fin self.length)
Goal: r (self.toFun i.castSucc) (self.toFun i.succ)
-- RelSeries.singleton_toFun
@[simps!] def singleton (a : α) : RelSeries r 
Arguments: {α : Type u_1} (r : Rel α α) (a : α)
Goal: ∀ (x : Fin (0 + 1)), (RelSeries.singleton r a).toFun x = a
-- RelSeries.singleton_length
@[simps!] def singleton (a : α) : RelSeries r 
Arguments: {α : Type u_1} (r : Rel α α) (a : α)
Goal: (RelSeries.singleton r a).length = 0
-- RelSeries.ext
@[ext]
lemma ext {x y : RelSeries r} (length_eq : x.length = y.length)
    (toFun_eq : x.toFun = y.toFun ∘ Fin.cast (by rw [length_eq])) : x = y 
Arguments: {α : Type u_1} {r : Rel α α} {x y : RelSeries r} (length_eq : x.length = y.length) (toFun_eq : x.toFun = y.toFun ∘ Fin.cast ⋯)
Goal: x = y
-- RelSeries.rel_of_lt
lemma rel_of_lt [IsTrans α r] (x : RelSeries r) {i j : Fin (x.length + 1)} (h : i < j) :
    r (x i) (x j) 
Arguments: {α : Type u_1} {r : Rel α α} [IsTrans α r] (x : RelSeries r) {i j : Fin (x.length + 1)} (h : i < j)
Goal: r (x.toFun i) (x.toFun j)
-- RelSeries.rel_or_eq_of_le
lemma rel_or_eq_of_le [IsTrans α r] (x : RelSeries r) {i j : Fin (x.length + 1)} (h : i ≤ j) :
    r (x i) (x j) ∨ x i = x j 
Arguments: {α : Type u_1} {r : Rel α α} [IsTrans α r] (x : RelSeries r) {i j : Fin (x.length + 1)} (h : i ≤ j)
Goal: r (x.toFun i) (x.toFun j) ∨ x.toFun i = x.toFun j
-- RelSeries.ofLE_length
@[simps!]
def ofLE (x : RelSeries r) {s : Rel α α} (h : r ≤ s) : RelSeries s 
Arguments: {α : Type u_1} {r : Rel α α} (x : RelSeries r) {s : Rel α α} (h : r ≤ s)
Goal: (x.ofLE h).length = x.length
-- RelSeries.ofLE_toFun
@[simps!]
def ofLE (x : RelSeries r) {s : Rel α α} (h : r ≤ s) : RelSeries s 
Arguments: {α : Type u_1} {r : Rel α α} (x : RelSeries r) {s : Rel α α} (h : r ≤ s)
Goal: ∀ (a : Fin (x.length + 1)), (x.ofLE h).toFun a = x.toFun a
-- RelSeries.coe_ofLE
lemma coe_ofLE (x : RelSeries r) {s : Rel α α} (h : r ≤ s) :
    (x.ofLE h : _ → _) = x 
Arguments: {α : Type u_1} {r : Rel α α} (x : RelSeries r) {s : Rel α α} (h : r ≤ s)
Goal: (x.ofLE h).toFun = x.toFun
-- RelSeries.length_toList
@[simp]
lemma length_toList (x : RelSeries r) : x.toList.length = x.length + 1 
Arguments: {α : Type u_1} {r : Rel α α} (x : RelSeries r)
Goal: x.toList.length = x.length + 1
-- RelSeries.toList_chain'
lemma toList_chain' (x : RelSeries r) : x.toList.Chain' r 
Arguments: {α : Type u_1} {r : Rel α α} (x : RelSeries r)
Goal: List.Chain' r x.toList
-- RelSeries.toList_ne_nil
lemma toList_ne_nil (x : RelSeries r) : x.toList ≠ [] 
Arguments: {α : Type u_1} {r : Rel α α} (x : RelSeries r)
Goal: x.toList ≠ []
-- RelSeries.fromListChain'_length
@[simps]
def fromListChain' (x : List α) (x_ne_nil : x ≠ []) (hx : x.Chain' r) : RelSeries r 
Arguments: {α : Type u_1} {r : Rel α α} (x : List α) (x_ne_nil : x ≠ []) (hx : List.Chain' r x)
Goal: (RelSeries.fromListChain' x x_ne_nil hx).length = x.length.pred
-- RelSeries.fromListChain'_toFun
@[simps]
def fromListChain' (x : List α) (x_ne_nil : x ≠ []) (hx : x.Chain' r) : RelSeries r 
Arguments: {α : Type u_1} {r : Rel α α} (x : List α) (x_ne_nil : x ≠ []) (hx : List.Chain' r x)
Goal: ∀ (a : Fin (x.length.pred + 1)), (RelSeries.fromListChain' x x_ne_nil hx).toFun a = (x.get ∘ Fin.cast ⋯) a
-- RelSeries.toList_injective
lemma toList_injective : Function.Injective (RelSeries.toList (r := r)) 
Arguments: {α : Type u_1} {r : Rel α α}
Goal: Function.Injective RelSeries.toList
-- Rel.FiniteDimensional.exists_longest_relSeries
class FiniteDimensional : Prop where
    exists_longest_relSeries : ∃ x : RelSeries r, ∀ y : RelSeries r, y.length ≤ x.length
Arguments: {α : Type u_1} {r : Rel α α} [self : r.FiniteDimensional]
Goal: ∃ x, ∀ (y : RelSeries r), y.length ≤ x.length
-- Rel.InfiniteDimensional.exists_relSeries_with_length
class InfiniteDimensional : Prop where
    exists_relSeries_with_length : ∀ n : ℕ, ∃ x : RelSeries r, x.length = n
Arguments: {α : Type u_1} {r : Rel α α} [self : r.InfiniteDimensional] (n : ℕ)
Goal: ∃ x, x.length = n
-- RelSeries.length_le_length_longestOf
lemma length_le_length_longestOf [r.FiniteDimensional] (x : RelSeries r) :
    x.length ≤ (RelSeries.longestOf r).length 
Arguments: {α : Type u_1} (r : Rel α α) [r.FiniteDimensional] (x : RelSeries r)
Goal: x.length ≤ (RelSeries.longestOf r).length
-- RelSeries.length_withLength
@[simp] lemma length_withLength [r.InfiniteDimensional] (n : ℕ) :
    (RelSeries.withLength r n).length = n 
Arguments: {α : Type u_1} (r : Rel α α) [r.InfiniteDimensional] (n : ℕ)
Goal: (RelSeries.withLength r n).length = n
-- RelSeries.nonempty_of_infiniteDimensional
lemma nonempty_of_infiniteDimensional [r.InfiniteDimensional] : Nonempty α 
Arguments: {α : Type u_1} {r : Rel α α} [r.InfiniteDimensional]
Goal: Nonempty α
-- RelSeries.mem_def
theorem mem_def : x ∈ s ↔ x ∈ Set.range s 
Arguments: {α : Type u_1} {r : Rel α α} {s : RelSeries r} {x : α}
Goal: x ∈ s ↔ x ∈ Set.range s.toFun
-- RelSeries.mem_toList
@[simp] theorem mem_toList : x ∈ s.toList ↔ x ∈ s 
Arguments: {α : Type u_1} {r : Rel α α} {s : RelSeries r} {x : α}
Goal: x ∈ s.toList ↔ x ∈ s
-- RelSeries.subsingleton_of_length_eq_zero
theorem subsingleton_of_length_eq_zero (hs : s.length = 0) : {x | x ∈ s}.Subsingleton 
Arguments: {α : Type u_1} {r : Rel α α} {s : RelSeries r} (hs : s.length = 0)
Goal: {x | x ∈ s}.Subsingleton
-- RelSeries.length_ne_zero_of_nontrivial
theorem length_ne_zero_of_nontrivial (h : {x | x ∈ s}.Nontrivial) : s.length ≠ 0 
Arguments: {α : Type u_1} {r : Rel α α} {s : RelSeries r} (h : {x | x ∈ s}.Nontrivial)
Goal: s.length ≠ 0
-- RelSeries.length_pos_of_nontrivial
theorem length_pos_of_nontrivial (h : {x | x ∈ s}.Nontrivial) : 0 < s.length 
Arguments: {α : Type u_1} {r : Rel α α} {s : RelSeries r} (h : {x | x ∈ s}.Nontrivial)
Goal: 0 < s.length
-- RelSeries.length_ne_zero
theorem length_ne_zero (irrefl : Irreflexive r) : s.length ≠ 0 ↔ {x | x ∈ s}.Nontrivial 
Arguments: {α : Type u_1} {r : Rel α α} {s : RelSeries r} (irrefl : Irreflexive r)
Goal: s.length ≠ 0 ↔ {x | x ∈ s}.Nontrivial
-- RelSeries.length_pos
theorem length_pos (irrefl : Irreflexive r) : 0 < s.length ↔ {x | x ∈ s}.Nontrivial 
Arguments: {α : Type u_1} {r : Rel α α} {s : RelSeries r} (irrefl : Irreflexive r)
Goal: 0 < s.length ↔ {x | x ∈ s}.Nontrivial
-- RelSeries.length_eq_zero
lemma length_eq_zero (irrefl : Irreflexive r) : s.length = 0 ↔ {x | x ∈ s}.Subsingleton 
Arguments: {α : Type u_1} {r : Rel α α} {s : RelSeries r} (irrefl : Irreflexive r)
Goal: s.length = 0 ↔ {x | x ∈ s}.Subsingleton
-- RelSeries.apply_last
lemma apply_last (x : RelSeries r) : x (Fin.last <| x.length) = x.last 
Arguments: {α : Type u_1} {r : Rel α α} (x : RelSeries r)
Goal: x.toFun (Fin.last x.length) = x.last
-- RelSeries.head_mem
lemma head_mem (x : RelSeries r) : x.head ∈ x 
Arguments: {α : Type u_1} {r : Rel α α} (x : RelSeries r)
Goal: x.head ∈ x
-- RelSeries.last_mem
lemma last_mem (x : RelSeries r) : x.last ∈ x 
Arguments: {α : Type u_1} {r : Rel α α} (x : RelSeries r)
Goal: x.last ∈ x
-- RelSeries.append_length
@[simps length]
def append (p q : RelSeries r) (connect : r p.last q.head) : RelSeries r 
Arguments: {α : Type u_1} {r : Rel α α} (p q : RelSeries r) (connect : r p.last q.head)
Goal: (p.append q connect).length = p.length + q.length + 1
-- RelSeries.append_apply_left
lemma append_apply_left (p q : RelSeries r) (connect : r p.last q.head)
    (i : Fin (p.length + 1)) :
    p.append q connect ((i.castAdd (q.length + 1)).cast (by dsimp; abel)) = p i 
Arguments: {α : Type u_1} {r : Rel α α} (p q : RelSeries r) (connect : r p.last q.head) (i : Fin (p.length + 1))
Goal: (p.append q connect).toFun (Fin.cast ⋯ (Fin.castAdd (q.length + 1) i)) = p.toFun i
-- RelSeries.append_apply_right
lemma append_apply_right (p q : RelSeries r) (connect : r p.last q.head)
    (i : Fin (q.length + 1)) :
    p.append q connect (i.natAdd p.length + 1) = q i 
Arguments: {α : Type u_1} {r : Rel α α} (p q : RelSeries r) (connect : r p.last q.head) (i : Fin (q.length + 1))
Goal: (p.append q connect).toFun (↑↑(Fin.natAdd p.length i) + 1) = q.toFun i
-- RelSeries.head_append
@[simp] lemma head_append (p q : RelSeries r) (connect : r p.last q.head) :
    (p.append q connect).head = p.head 
Arguments: {α : Type u_1} {r : Rel α α} (p q : RelSeries r) (connect : r p.last q.head)
Goal: (p.append q connect).head = p.head
-- RelSeries.last_append
@[simp] lemma last_append (p q : RelSeries r) (connect : r p.last q.head) :
    (p.append q connect).last = q.last 
Arguments: {α : Type u_1} {r : Rel α α} (p q : RelSeries r) (connect : r p.last q.head)
Goal: (p.append q connect).last = q.last
-- RelSeries.map_length
@[simps length]
def map (p : RelSeries r) (f : r →r s) : RelSeries s 
Arguments: {α : Type u_1} {r : Rel α α} {β : Type u_2} {s : Rel β β} (p : RelSeries r) (f : r →r s)
Goal: (p.map f).length = p.length
-- RelSeries.map_apply
@[simp] lemma map_apply (p : RelSeries r) (f : r →r s) (i : Fin (p.length + 1)) :
    p.map f i = f (p i) 
Arguments: {α : Type u_1} {r : Rel α α} {β : Type u_2} {s : Rel β β} (p : RelSeries r) (f : r →r s) (i : Fin (p.length + 1))
Goal: (p.map f).toFun i = f (p.toFun i)
-- RelSeries.insertNth_toFun
@[simps]
def insertNth (p : RelSeries r) (i : Fin p.length) (a : α)
    (prev_connect : r (p (Fin.castSucc i)) a) (connect_next : r a (p i.succ)) : RelSeries r 
Arguments: {α : Type u_1} {r : Rel α α} (p : RelSeries r) (i : Fin p.length) (a : α) (prev_connect : r (p.toFun i.castSucc) a) (connect_next : r a (p.toFun i.succ)) (j : Fin (p.length + 1 + 1))
Goal: (p.insertNth i a prev_connect connect_next).toFun j = i.succ.castSucc.insertNth a p.toFun j
-- RelSeries.insertNth_length
@[simps]
def insertNth (p : RelSeries r) (i : Fin p.length) (a : α)
    (prev_connect : r (p (Fin.castSucc i)) a) (connect_next : r a (p i.succ)) : RelSeries r 
Arguments: {α : Type u_1} {r : Rel α α} (p : RelSeries r) (i : Fin p.length) (a : α) (prev_connect : r (p.toFun i.castSucc) a) (connect_next : r a (p.toFun i.succ))
Goal: (p.insertNth i a prev_connect connect_next).length = p.length + 1
-- RelSeries.reverse_length
@[simps length]
def reverse (p : RelSeries r) : RelSeries (fun (a b : α) ↦ r b a) 
Arguments: {α : Type u_1} {r : Rel α α} (p : RelSeries r)
Goal: p.reverse.length = p.length
-- RelSeries.reverse_apply
@[simp] lemma reverse_apply (p : RelSeries r) (i : Fin (p.length + 1)) :
    p.reverse i = p i.rev 
Arguments: {α : Type u_1} {r : Rel α α} (p : RelSeries r) (i : Fin (p.length + 1))
Goal: p.reverse.toFun i = p.toFun i.rev
-- RelSeries.cons_length
@[simps! length]
def cons (p : RelSeries r) (newHead : α) (rel : r newHead p.head) : RelSeries r 
Arguments: {α : Type u_1} {r : Rel α α} (p : RelSeries r) (newHead : α) (rel : r newHead p.head)
Goal: (p.cons newHead rel).length = p.length + 1
-- RelSeries.head_cons
@[simp] lemma head_cons (p : RelSeries r) (newHead : α) (rel : r newHead p.head) :
    (p.cons newHead rel).head = newHead 
Arguments: {α : Type u_1} {r : Rel α α} (p : RelSeries r) (newHead : α) (rel : r newHead p.head)
Goal: (p.cons newHead rel).head = newHead
-- RelSeries.last_cons
@[simp] lemma last_cons (p : RelSeries r) (newHead : α) (rel : r newHead p.head) :
    (p.cons newHead rel).last = p.last 
Arguments: {α : Type u_1} {r : Rel α α} (p : RelSeries r) (newHead : α) (rel : r newHead p.head)
Goal: (p.cons newHead rel).last = p.last
-- RelSeries.snoc_length
@[simps! length]
def snoc (p : RelSeries r) (newLast : α) (rel : r p.last newLast) : RelSeries r 
Arguments: {α : Type u_1} {r : Rel α α} (p : RelSeries r) (newLast : α) (rel : r p.last newLast)
Goal: (p.snoc newLast rel).length = p.length + 1
-- RelSeries.head_snoc
@[simp] lemma head_snoc (p : RelSeries r) (newLast : α) (rel : r p.last newLast) :
    (p.snoc newLast rel).head = p.head 
Arguments: {α : Type u_1} {r : Rel α α} (p : RelSeries r) (newLast : α) (rel : r p.last newLast)
Goal: (p.snoc newLast rel).head = p.head
-- RelSeries.last_snoc
@[simp] lemma last_snoc (p : RelSeries r) (newLast : α) (rel : r p.last newLast) :
    (p.snoc newLast rel).last = newLast 
Arguments: {α : Type u_1} {r : Rel α α} (p : RelSeries r) (newLast : α) (rel : r p.last newLast)
Goal: (p.snoc newLast rel).last = newLast
-- RelSeries.last_snoc'
@[simp] lemma last_snoc' (p : RelSeries r) (newLast : α) (rel : r p.last newLast) :
    p.snoc newLast rel (Fin.last (p.length + 1)) = newLast 
Arguments: {α : Type u_1} {r : Rel α α} (p : RelSeries r) (newLast : α) (rel : r p.last newLast)
Goal: (p.snoc newLast rel).toFun (Fin.last (p.length + 1)) = newLast
-- RelSeries.snoc_castSucc
@[simp] lemma snoc_castSucc (s : RelSeries r) (a : α) (connect : r s.last a)
    (i : Fin (s.length + 1)) : snoc s a connect (Fin.castSucc i) = s i 
Arguments: {α : Type u_1} {r : Rel α α} (s : RelSeries r) (a : α) (connect : r s.last a) (i : Fin (s.length + 1))
Goal: (s.snoc a connect).toFun i.castSucc = s.toFun i
-- RelSeries.mem_snoc
lemma mem_snoc {p : RelSeries r} {newLast : α} {rel : r p.last newLast} {x : α} :
    x ∈ p.snoc newLast rel ↔ x ∈ p ∨ x = newLast 
Arguments: {α : Type u_1} {r : Rel α α} {p : RelSeries r} {newLast : α} {rel : r p.last newLast} {x : α}
Goal: x ∈ p.snoc newLast rel ↔ x ∈ p ∨ x = newLast
-- RelSeries.tail_length
@[simps]
def tail (p : RelSeries r) (len_pos : p.length ≠ 0) : RelSeries r 
Arguments: {α : Type u_1} {r : Rel α α} (p : RelSeries r) (len_pos : p.length ≠ 0)
Goal: (p.tail len_pos).length = p.length - 1
-- RelSeries.tail_toFun
@[simps]
def tail (p : RelSeries r) (len_pos : p.length ≠ 0) : RelSeries r 
Arguments: {α : Type u_1} {r : Rel α α} (p : RelSeries r) (len_pos : p.length ≠ 0)
Goal: ∀ (a : Fin (p.length - 1 + 1)), (p.tail len_pos).toFun a = (Fin.tail p.toFun ∘ Fin.cast ⋯) a
-- RelSeries.head_tail
@[simp] lemma head_tail (p : RelSeries r) (len_pos : p.length ≠ 0) :
    (p.tail len_pos).head = p 1 
Arguments: {α : Type u_1} {r : Rel α α} (p : RelSeries r) (len_pos : p.length ≠ 0)
Goal: (p.tail len_pos).head = p.toFun 1
-- RelSeries.last_tail
@[simp] lemma last_tail (p : RelSeries r) (len_pos : p.length ≠ 0) :
    (p.tail len_pos).last = p.last 
Arguments: {α : Type u_1} {r : Rel α α} (p : RelSeries r) (len_pos : p.length ≠ 0)
Goal: (p.tail len_pos).last = p.last
-- RelSeries.eraseLast_length
@[simps]
def eraseLast (p : RelSeries r) : RelSeries r 
Arguments: {α : Type u_1} {r : Rel α α} (p : RelSeries r)
Goal: p.eraseLast.length = p.length - 1
-- RelSeries.eraseLast_toFun
@[simps]
def eraseLast (p : RelSeries r) : RelSeries r 
Arguments: {α : Type u_1} {r : Rel α α} (p : RelSeries r) (i : Fin (p.length - 1 + 1))
Goal: p.eraseLast.toFun i = p.toFun ⟨↑i, ⋯⟩
-- RelSeries.head_eraseLast
@[simp] lemma head_eraseLast (p : RelSeries r) : p.eraseLast.head = p.head 
Arguments: {α : Type u_1} {r : Rel α α} (p : RelSeries r)
Goal: p.eraseLast.head = p.head
-- RelSeries.last_eraseLast
@[simp] lemma last_eraseLast (p : RelSeries r) :
    p.eraseLast.last = p ⟨p.length.pred, Nat.lt_succ_iff.2 (Nat.pred_le _)⟩ 
Arguments: {α : Type u_1} {r : Rel α α} (p : RelSeries r)
Goal: p.eraseLast.last = p.toFun ⟨p.length.pred, ⋯⟩
-- RelSeries.smash_length
@[simps]
def smash (p q : RelSeries r) (connect : p.last = q.head) : RelSeries r 
Arguments: {α : Type u_1} {r : Rel α α} (p q : RelSeries r) (connect : p.last = q.head)
Goal: (p.smash q connect).length = p.length + q.length
-- RelSeries.smash_toFun
@[simps]
def smash (p q : RelSeries r) (connect : p.last = q.head) : RelSeries r 
Arguments: {α : Type u_1} {r : Rel α α} (p q : RelSeries r) (connect : p.last = q.head) (i : Fin (p.length + q.length + 1))
Goal: (p.smash q connect).toFun i = if H : ↑i < p.length then p.toFun ⟨↑i, ⋯⟩ else q.toFun ⟨↑i - p.length, ⋯⟩
-- RelSeries.smash_castAdd
lemma smash_castAdd {p q : RelSeries r} (connect : p.last = q.head) (i : Fin p.length) :
    p.smash q connect (Fin.castSucc <| i.castAdd q.length) = p (Fin.castSucc i) 
Arguments: {α : Type u_1} {r : Rel α α} {p q : RelSeries r} (connect : p.last = q.head) (i : Fin p.length)
Goal: (p.smash q connect).toFun (Fin.castAdd q.length i).castSucc = p.toFun i.castSucc
-- RelSeries.smash_succ_castAdd
lemma smash_succ_castAdd {p q : RelSeries r} (h : p.last = q.head)
    (i : Fin p.length) : p.smash q h (i.castAdd q.length).succ = p i.succ 
Arguments: {α : Type u_1} {r : Rel α α} {p q : RelSeries r} (h : p.last = q.head) (i : Fin p.length)
Goal: (p.smash q h).toFun (Fin.castAdd q.length i).succ = p.toFun i.succ
-- RelSeries.smash_natAdd
lemma smash_natAdd {p q : RelSeries r} (h : p.last = q.head) (i : Fin q.length) :
    smash p q h (Fin.castSucc <| i.natAdd p.length) = q (Fin.castSucc i) 
Arguments: {α : Type u_1} {r : Rel α α} {p q : RelSeries r} (h : p.last = q.head) (i : Fin q.length)
Goal: (p.smash q h).toFun (Fin.natAdd p.length i).castSucc = q.toFun i.castSucc
-- RelSeries.smash_succ_natAdd
lemma smash_succ_natAdd {p q : RelSeries r} (h : p.last = q.head) (i : Fin q.length) :
    smash p q h (i.natAdd p.length).succ = q i.succ 
Arguments: {α : Type u_1} {r : Rel α α} {p q : RelSeries r} (h : p.last = q.head) (i : Fin q.length)
Goal: (p.smash q h).toFun (Fin.natAdd p.length i).succ = q.toFun i.succ
-- RelSeries.head_smash
@[simp] lemma head_smash {p q : RelSeries r} (h : p.last = q.head) :
    (smash p q h).head = p.head 
Arguments: {α : Type u_1} {r : Rel α α} {p q : RelSeries r} (h : p.last = q.head)
Goal: (p.smash q h).head = p.head
-- RelSeries.last_smash
@[simp] lemma last_smash {p q : RelSeries r} (h : p.last = q.head) :
    (smash p q h).last = q.last 
Arguments: {α : Type u_1} {r : Rel α α} {p q : RelSeries r} (h : p.last = q.head)
Goal: (p.smash q h).last = q.last
-- LTSeries.length_withLength
@[simp] lemma length_withLength [InfiniteDimensionalOrder α] (n : ℕ) :
    (LTSeries.withLength α n).length = n 
Arguments: (α : Type u_1) [Preorder α] [InfiniteDimensionalOrder α] (n : ℕ)
Goal: (LTSeries.withLength α n).length = n
-- LTSeries.nonempty_of_infiniteDimensionalType
lemma nonempty_of_infiniteDimensionalType [InfiniteDimensionalOrder α] : Nonempty α 
Arguments: (α : Type u_1) [Preorder α] [InfiniteDimensionalOrder α]
Goal: Nonempty α
-- LTSeries.longestOf_is_longest
lemma longestOf_is_longest [FiniteDimensionalOrder α] (x : LTSeries α) :
    x.length ≤ (LTSeries.longestOf α).length 
Arguments: {α : Type u_1} [Preorder α] [FiniteDimensionalOrder α] (x : LTSeries α)
Goal: x.length ≤ (LTSeries.longestOf α).length
-- LTSeries.longestOf_len_unique
lemma longestOf_len_unique [FiniteDimensionalOrder α] (p : LTSeries α)
    (is_longest : ∀ (q : LTSeries α), q.length ≤ p.length) :
    p.length = (LTSeries.longestOf α).length 
Arguments: {α : Type u_1} [Preorder α] [FiniteDimensionalOrder α] (p : LTSeries α) (is_longest : ∀ (q : LTSeries α), q.length ≤ p.length)
Goal: p.length = (LTSeries.longestOf α).length
-- LTSeries.strictMono
lemma strictMono (x : LTSeries α) : StrictMono x 
Arguments: {α : Type u_1} [Preorder α] (x : LTSeries α)
Goal: StrictMono x.toFun
-- LTSeries.monotone
lemma monotone (x : LTSeries α) : Monotone x 
Arguments: {α : Type u_1} [Preorder α] (x : LTSeries α)
Goal: Monotone x.toFun
-- LTSeries.mk_toFun
@[simps]
def mk (length : ℕ) (toFun : Fin (length + 1) → α) (strictMono : StrictMono toFun) :
    LTSeries α 
Arguments: {α : Type u_1} [Preorder α] (length : ℕ) (toFun : Fin (length + 1) → α) (strictMono : StrictMono toFun)
Goal: ∀ (a : Fin (length + 1)), (LTSeries.mk length toFun strictMono).toFun a = toFun a
-- LTSeries.mk_length
@[simps]
def mk (length : ℕ) (toFun : Fin (length + 1) → α) (strictMono : StrictMono toFun) :
    LTSeries α 
Arguments: {α : Type u_1} [Preorder α] (length : ℕ) (toFun : Fin (length + 1) → α) (strictMono : StrictMono toFun)
Goal: (LTSeries.mk length toFun strictMono).length = length
-- LTSeries.map_toFun
@[simps!]
def map (p : LTSeries α) (f : α → β) (hf : StrictMono f) : LTSeries β 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] (p : LTSeries α) (f : α → β) (hf : StrictMono f)
Goal: ∀ (a : Fin (p.length + 1)), (p.map f hf).toFun a = f (p.toFun a)
-- LTSeries.map_length
@[simps!]
def map (p : LTSeries α) (f : α → β) (hf : StrictMono f) : LTSeries β 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] (p : LTSeries α) (f : α → β) (hf : StrictMono f)
Goal: (p.map f hf).length = p.length
-- LTSeries.comap_toFun
@[simps!]
noncomputable def comap (p : LTSeries β) (f : α → β)
  (comap : ∀ ⦃x y⦄, f x < f y → x < y)
  (surjective : Function.Surjective f) :
  LTSeries α 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] (p : LTSeries β) (f : α → β) (comap : ∀ ⦃x y : α⦄, f x < f y → x < y) (surjective : Function.Surjective f) (i : Fin (p.length + 1))
Goal: (p.comap f comap surjective).toFun i = ⋯.choose
-- LTSeries.comap_length
@[simps!]
noncomputable def comap (p : LTSeries β) (f : α → β)
  (comap : ∀ ⦃x y⦄, f x < f y → x < y)
  (surjective : Function.Surjective f) :
  LTSeries α 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] (p : LTSeries β) (f : α → β) (comap : ∀ ⦃x y : α⦄, f x < f y → x < y) (surjective : Function.Surjective f)
Goal: (p.comap f comap surjective).length = p.length
-- infiniteDimensionalOrder_of_strictMono
lemma infiniteDimensionalOrder_of_strictMono [Preorder α] [Preorder β]
    (f : α → β) (hf : StrictMono f) [InfiniteDimensionalOrder α] :
    InfiniteDimensionalOrder β 
Arguments: {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] (f : α → β) (hf : StrictMono f) [InfiniteDimensionalOrder α]
Goal: InfiniteDimensionalOrder β
-- BddOrd.coe_of
@[simp]
theorem coe_of (α : Type*) [PartialOrder α] [BoundedOrder α] : ↥(of α) = α 
Arguments: (α : Type u_1) [PartialOrder α] [BoundedOrder α]
Goal: ↑(BddOrd.of α).toPartOrd = α
-- BddOrd.dual_obj
@[simps]
def dual : BddOrd ⥤ BddOrd 
Arguments: (X : BddOrd)
Goal: BddOrd.dual.obj X = BddOrd.of (↑X.toPartOrd)ᵒᵈ
-- BddOrd.dual_map
@[simps]
def dual : BddOrd ⥤ BddOrd 
Arguments: {X Y : BddOrd} (a : BoundedOrderHom ↑X.toPartOrd ↑Y.toPartOrd)
Goal: BddOrd.dual.map a = BoundedOrderHom.dual a
-- BddOrd.Iso.mk_hom
@[simps]
def Iso.mk {α β : BddOrd.{u}} (e : α ≃o β) : α ≅ β 
Arguments: {α β : BddOrd} (e : ↑α.toPartOrd ≃o ↑β.toPartOrd)
Goal: (BddOrd.Iso.mk e).hom = ↑e
-- BddOrd.Iso.mk_inv
@[simps]
def Iso.mk {α β : BddOrd.{u}} (e : α ≃o β) : α ≅ β 
Arguments: {α β : BddOrd} (e : ↑α.toPartOrd ≃o ↑β.toPartOrd)
Goal: (BddOrd.Iso.mk e).inv = ↑e.symm
-- BddOrd.dualEquiv_functor
@[simps functor inverse]
def dualEquiv : BddOrd ≌ BddOrd 
Goal: BddOrd.dualEquiv.functor = BddOrd.dual
-- BddOrd.dualEquiv_inverse
@[simps functor inverse]
def dualEquiv : BddOrd ≌ BddOrd 
Goal: BddOrd.dualEquiv.inverse = BddOrd.dual
-- bddOrd_dual_comp_forget_to_partOrd
theorem bddOrd_dual_comp_forget_to_partOrd :
    BddOrd.dual ⋙ forget₂ BddOrd PartOrd =
    forget₂ BddOrd PartOrd ⋙ PartOrd.dual 
Goal: BddOrd.dual ⋙ CategoryTheory.forget₂ BddOrd PartOrd = CategoryTheory.forget₂ BddOrd PartOrd ⋙ PartOrd.dual
-- bddOrd_dual_comp_forget_to_bipointed
theorem bddOrd_dual_comp_forget_to_bipointed :
    BddOrd.dual ⋙ forget₂ BddOrd Bipointed =
    forget₂ BddOrd Bipointed ⋙ Bipointed.swap 
Goal: BddOrd.dual ⋙ CategoryTheory.forget₂ BddOrd Bipointed = CategoryTheory.forget₂ BddOrd Bipointed ⋙ Bipointed.swap