ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- decide_False'
theorem decide_False' (h : Decidable False) : decide False = false 
Arguments: (h : Decidable False)
Goal: decide False = false
-- decidableEq_inl_refl
theorem decidableEq_inl_refl {α : Sort u} [h : DecidableEq α] (a : α) :
    h a a = isTrue (Eq.refl a) 
Arguments: {α : Sort u} [h : DecidableEq α] (a : α)
Goal: h a a = isTrue ⋯
-- decidableEq_inr_neg
theorem decidableEq_inr_neg {α : Sort u} [h : DecidableEq α] {a b : α}
    (n : a ≠ b) : h a b = isFalse n 
Arguments: {α : Sort u} [h : DecidableEq α] {a b : α} (n : a ≠ b)
Goal: h a b = isFalse n
-- rec_subsingleton
theorem rec_subsingleton {p : Prop} [h : Decidable p] {h₁ : p → Sort u} {h₂ : ¬p → Sort u}
    [h₃ : ∀ h : p, Subsingleton (h₁ h)] [h₄ : ∀ h : ¬p, Subsingleton (h₂ h)] :
    Subsingleton (Decidable.recOn h h₂ h₁) 
Arguments: {p : Prop} [h : Decidable p] {h₁ : p → Sort u} {h₂ : ¬p → Sort u} [h₃ : ∀ (h : p), Subsingleton (h₁ h)] [h₄ : ∀ (h : ¬p), Subsingleton (h₂ h)]
Goal: Subsingleton (Decidable.recOn h h₂ h₁)
-- imp_of_if_pos
theorem imp_of_if_pos {c t e : Prop} [Decidable c] (h : ite c t e) (hc : c) : t 
Arguments: {c t e : Prop} [Decidable c] (h : if c then t else e) (hc : c)
Goal: t
-- imp_of_if_neg
theorem imp_of_if_neg {c t e : Prop} [Decidable c] (h : ite c t e) (hnc : ¬c) : e 
Arguments: {c t e : Prop} [Decidable c] (h : if c then t else e) (hnc : ¬c)
Goal: e
-- if_ctx_congr
theorem if_ctx_congr {α : Sort u} {b c : Prop} [dec_b : Decidable b] [dec_c : Decidable c]
    {x y u v : α} (h_c : b ↔ c) (h_t : c → x = u) (h_e : ¬c → y = v) : ite b x y = ite c u v 
Arguments: {α : Sort u} {b c : Prop} [dec_b : Decidable b] [dec_c : Decidable c] {x y u v : α} (h_c : b ↔ c) (h_t : c → x = u) (h_e : ¬c → y = v)
Goal: (if b then x else y) = if c then u else v
-- if_congr
theorem if_congr {α : Sort u} {b c : Prop} [Decidable b] [Decidable c]
    {x y u v : α} (h_c : b ↔ c) (h_t : x = u) (h_e : y = v) : ite b x y = ite c u v 
Arguments: {α : Sort u} {b c : Prop} [Decidable b] [Decidable c] {x y u v : α} (h_c : b ↔ c) (h_t : x = u) (h_e : y = v)
Goal: (if b then x else y) = if c then u else v
-- if_ctx_congr_prop
theorem if_ctx_congr_prop {b c x y u v : Prop} [dec_b : Decidable b] [dec_c : Decidable c]
    (h_c : b ↔ c) (h_t : c → (x ↔ u)) (h_e : ¬c → (y ↔ v)) : ite b x y ↔ ite c u v 
Arguments: {b c x y u v : Prop} [dec_b : Decidable b] [dec_c : Decidable c] (h_c : b ↔ c) (h_t : c → (x ↔ u)) (h_e : ¬c → (y ↔ v))
Goal: (if b then x else y) ↔ if c then u else v
-- if_congr_prop
theorem if_congr_prop {b c x y u v : Prop} [Decidable b] [Decidable c] (h_c : b ↔ c) (h_t : x ↔ u)
    (h_e : y ↔ v) : ite b x y ↔ ite c u v 
Arguments: {b c x y u v : Prop} [Decidable b] [Decidable c] (h_c : b ↔ c) (h_t : x ↔ u) (h_e : y ↔ v)
Goal: (if b then x else y) ↔ if c then u else v
-- if_ctx_simp_congr_prop
theorem if_ctx_simp_congr_prop {b c x y u v : Prop} [Decidable b] (h_c : b ↔ c) (h_t : c → (x ↔ u))
    -- FIXME: after https://github.com/leanprover/lean4/issues/1867 is fixed,
    -- this should be changed back to:
    -- (h_e : ¬c → (y ↔ v)) : ite b x y ↔ ite c (h := decidable_of_decidable_of_iff h_c) u v :=
    (h_e : ¬c → (y ↔ v)) : ite b x y ↔ @ite _ c (decidable_of_decidable_of_iff h_c) u v 
Arguments: {b c x y u v : Prop} [Decidable b] (h_c : b ↔ c) (h_t : c → (x ↔ u)) (h_e : ¬c → (y ↔ v))
Goal: (if b then x else y) ↔ if c then u else v
-- if_simp_congr_prop
theorem if_simp_congr_prop {b c x y u v : Prop} [Decidable b] (h_c : b ↔ c) (h_t : x ↔ u)
    -- FIXME: after https://github.com/leanprover/lean4/issues/1867 is fixed,
    -- this should be changed back to:
    -- (h_e : y ↔ v) : ite b x y ↔ (ite c (h := decidable_of_decidable_of_iff h_c) u v) :=
    (h_e : y ↔ v) : ite b x y ↔ (@ite _ c (decidable_of_decidable_of_iff h_c) u v) 
Arguments: {b c x y u v : Prop} [Decidable b] (h_c : b ↔ c) (h_t : x ↔ u) (h_e : y ↔ v)
Goal: (if b then x else y) ↔ if c then u else v
-- dif_ctx_congr
theorem dif_ctx_congr {α : Sort u} {b c : Prop} [dec_b : Decidable b] [dec_c : Decidable c]
    {x : b → α} {u : c → α} {y : ¬b → α} {v : ¬c → α}
    (h_c : b ↔ c) (h_t : ∀ h : c, x (Iff.mpr h_c h) = u h)
    (h_e : ∀ h : ¬c, y (Iff.mpr (not_congr h_c) h) = v h) :
    @dite α b dec_b x y = @dite α c dec_c u v 
Arguments: {α : Sort u} {b c : Prop} [dec_b : Decidable b] [dec_c : Decidable c] {x : b → α} {u : c → α} {y : ¬b → α} {v : ¬c → α} (h_c : b ↔ c) (h_t : ∀ (h : c), x ⋯ = u h) (h_e : ∀ (h : ¬c), y ⋯ = v h)
Goal: dite b x y = dite c u v
-- dif_ctx_simp_congr
theorem dif_ctx_simp_congr {α : Sort u} {b c : Prop} [Decidable b]
    {x : b → α} {u : c → α} {y : ¬b → α} {v : ¬c → α}
    (h_c : b ↔ c) (h_t : ∀ h : c, x (Iff.mpr h_c h) = u h)
    (h_e : ∀ h : ¬c, y (Iff.mpr (not_congr h_c) h) = v h) :
    -- FIXME: after https://github.com/leanprover/lean4/issues/1867 is fixed,
    -- this should be changed back to:
    -- dite b x y = dite c (h := decidable_of_decidable_of_iff h_c) u v :=
    dite b x y = @dite _ c (decidable_of_decidable_of_iff h_c) u v 
Arguments: {α : Sort u} {b c : Prop} [Decidable b] {x : b → α} {u : c → α} {y : ¬b → α} {v : ¬c → α} (h_c : b ↔ c) (h_t : ∀ (h : c), x ⋯ = u h) (h_e : ∀ (h : ¬c), y ⋯ = v h)
Goal: dite b x y = dite c u v
-- AsTrue.get
theorem AsTrue.get {c : Prop} [h₁ : Decidable c] (_ : AsTrue c) : c 
Arguments: {c : Prop} [h₁ : Decidable c]
Goal: AsTrue c → c
-- let_value_eq
theorem let_value_eq {α : Sort u} {β : Sort v} {a₁ a₂ : α} (b : α → β)
    (h : a₁ = a₂) : (let x : α := a₁; b x) = (let x : α := a₂; b x) 
Arguments: {α : Sort u} {β : Sort v} {a₁ a₂ : α} (b : α → β) (h : a₁ = a₂)
Goal: (let x := a₁;
  b x) =
  let x := a₂;
  b x
-- let_value_heq
theorem let_value_heq {α : Sort v} {β : α → Sort u} {a₁ a₂ : α} (b : ∀ x : α, β x)
    (h : a₁ = a₂) : HEq (let x : α := a₁; b x) (let x : α := a₂; b x) 
Arguments: {α : Sort v} {β : α → Sort u} {a₁ a₂ : α} (b : (x : α) → β x) (h : a₁ = a₂)
Goal: HEq
  (let x := a₁;
  b x)
  (let x := a₂;
  b x)
-- let_body_eq
theorem let_body_eq {α : Sort v} {β : α → Sort u} (a : α) {b₁ b₂ : ∀ x : α, β x}
    (h : ∀ x, b₁ x = b₂ x) : (let x : α := a; b₁ x) = (let x : α := a; b₂ x) 
Arguments: {α : Sort v} {β : α → Sort u} (a : α) {b₁ b₂ : (x : α) → β x} (h : ∀ (x : α), b₁ x = b₂ x)
Goal: (let x := a;
  b₁ x) =
  let x := a;
  b₂ x
-- let_eq
theorem let_eq {α : Sort v} {β : Sort u} {a₁ a₂ : α} {b₁ b₂ : α → β}
    (h₁ : a₁ = a₂) (h₂ : ∀ x, b₁ x = b₂ x) :
    (let x : α := a₁; b₁ x) = (let x : α := a₂; b₂ x) 
Arguments: {α : Sort v} {β : Sort u} {a₁ a₂ : α} {b₁ b₂ : α → β} (h₁ : a₁ = a₂) (h₂ : ∀ (x : α), b₁ x = b₂ x)
Goal: (let x := a₁;
  b₁ x) =
  let x := a₂;
  b₂ x
-- Equivalence.reflexive
lemma Equivalence.reflexive {r : β → β → Prop} (h : Equivalence r) : Reflexive r 
Arguments: {β : Sort v} {r : β → β → Prop} (h : Equivalence r)
Goal: Reflexive r
-- Equivalence.symmetric
lemma Equivalence.symmetric {r : β → β → Prop} (h : Equivalence r) : Symmetric r 
Arguments: {β : Sort v} {r : β → β → Prop} (h : Equivalence r)
Goal: Symmetric r
-- Equivalence.transitive
lemma Equivalence.transitive {r : β → β → Prop} (h : Equivalence r) : Transitive r 
Arguments: {β : Sort v} {r : β → β → Prop} (h : Equivalence r)
Goal: Transitive r
-- InvImage.trans
theorem InvImage.trans (f : α → β) (h : Transitive r) : Transitive (InvImage r f) 
Arguments: {α : Sort u} {β : Sort v} (r : β → β → Prop) (f : α → β) (h : Transitive r)
Goal: Transitive (InvImage r f)
-- InvImage.irreflexive
theorem InvImage.irreflexive (f : α → β) (h : Irreflexive r) : Irreflexive (InvImage r f) 
Arguments: {α : Sort u} {β : Sort v} (r : β → β → Prop) (f : α → β) (h : Irreflexive r)
Goal: Irreflexive (InvImage r f)
-- left_comm
theorem left_comm : Commutative f → Associative f → LeftCommutative f 
Arguments: {α : Type u} (f : α → α → α)
Goal: Commutative f → Associative f → LeftCommutative f
-- right_comm
theorem right_comm : Commutative f → Associative f → RightCommutative f 
Arguments: {α : Type u} (f : α → α → α)
Goal: Commutative f → Associative f → RightCommutative f
-- List.pure_def
@[simp] theorem pure_def (a : α) : pure a = [a] 
Arguments: {α : Type u} (a : α)
Goal: pure a = [a]
-- List.headI_nil
@[simp] theorem headI_nil [Inhabited α] : ([] : List α).headI = default 
Arguments: {α : Type u} [Inhabited α]
Goal: [].headI = default
-- List.headI_cons
@[simp] theorem headI_cons [Inhabited α] {h : α} {t : List α} : (h :: t).headI = h 
Arguments: {α : Type u} [Inhabited α] {h : α} {t : List α}
Goal: (h :: t).headI = h
-- List.le_eq_not_gt
theorem le_eq_not_gt [LT α] : ∀ l₁ l₂ : List α, (l₁ ≤ l₂) = ¬l₂ < l₁ 
Arguments: {α : Type u} [LT α] (l₁ l₂ : List α)
Goal: (l₁ ≤ l₂) = ¬l₂ < l₁
-- IsSymmOp.symm_op
class IsSymmOp (α : Sort u) (β : Sort v) (op : α → α → β) : Prop where
  symm_op : ∀ a b, op a b = op b a
Arguments: {α : Sort u} {β : Sort v} {op : α → α → β} [self : IsSymmOp α β op] (a b : α)
Goal: op a b = op b a
-- IsLeftCancel.left_cancel
class IsLeftCancel (α : Sort u) (op : α → α → α) : Prop where
  left_cancel : ∀ a b c, op a b = op a c → b = c
Arguments: {α : Sort u} {op : α → α → α} [self : IsLeftCancel α op] (a b c : α)
Goal: op a b = op a c → b = c
-- IsRightCancel.right_cancel
class IsRightCancel (α : Sort u) (op : α → α → α) : Prop where
  right_cancel : ∀ a b c, op a b = op c b → a = c
Arguments: {α : Sort u} {op : α → α → α} [self : IsRightCancel α op] (a b c : α)
Goal: op a b = op c b → a = c
-- IsIrrefl.irrefl
class IsIrrefl (α : Sort u) (r : α → α → Prop) : Prop where
  irrefl : ∀ a, ¬r a a
Arguments: {α : Sort u} {r : α → α → Prop} [self : IsIrrefl α r] (a : α)
Goal: ¬r a a
-- IsRefl.refl
class IsRefl (α : Sort u) (r : α → α → Prop) : Prop where
  refl : ∀ a, r a a
Arguments: {α : Sort u} {r : α → α → Prop} [self : IsRefl α r] (a : α)
Goal: r a a
-- IsSymm.symm
class IsSymm (α : Sort u) (r : α → α → Prop) : Prop where
  symm : ∀ a b, r a b → r b a
Arguments: {α : Sort u} {r : α → α → Prop} [self : IsSymm α r] (a b : α)
Goal: r a b → r b a
-- IsAsymm.asymm
class IsAsymm (α : Sort u) (r : α → α → Prop) : Prop where
  asymm : ∀ a b, r a b → ¬r b a
Arguments: {α : Sort u} {r : α → α → Prop} [self : IsAsymm α r] (a b : α)
Goal: r a b → ¬r b a
-- IsAntisymm.antisymm
class IsAntisymm (α : Sort u) (r : α → α → Prop) : Prop where
  antisymm : ∀ a b, r a b → r b a → a = b
Arguments: {α : Sort u} {r : α → α → Prop} [self : IsAntisymm α r] (a b : α)
Goal: r a b → r b a → a = b
-- IsTrans.trans
class IsTrans (α : Sort u) (r : α → α → Prop) : Prop where
  trans : ∀ a b c, r a b → r b c → r a c
Arguments: {α : Sort u} {r : α → α → Prop} [self : IsTrans α r] (a b c : α)
Goal: r a b → r b c → r a c
-- IsTotal.total
class IsTotal (α : Sort u) (r : α → α → Prop) : Prop where
  total : ∀ a b, r a b ∨ r b a
Arguments: {α : Sort u} {r : α → α → Prop} [self : IsTotal α r] (a b : α)
Goal: r a b ∨ r b a
-- IsIncompTrans.incomp_trans
class IsIncompTrans (α : Sort u) (lt : α → α → Prop) : Prop where
  incomp_trans : ∀ a b c, ¬lt a b ∧ ¬lt b a → ¬lt b c ∧ ¬lt c b → ¬lt a c ∧ ¬lt c a
Arguments: {α : Sort u} {lt : α → α → Prop} [self : IsIncompTrans α lt] (a b c : α)
Goal: ¬lt a b ∧ ¬lt b a → ¬lt b c ∧ ¬lt c b → ¬lt a c ∧ ¬lt c a
-- IsTrichotomous.trichotomous
class IsTrichotomous (α : Sort u) (lt : α → α → Prop) : Prop where
  trichotomous : ∀ a b, lt a b ∨ a = b ∨ lt b a
Arguments: {α : Sort u} {lt : α → α → Prop} [self : IsTrichotomous α lt] (a b : α)
Goal: lt a b ∨ a = b ∨ lt b a
-- irrefl
theorem irrefl [IsIrrefl α r] (a : α) : ¬a ≺ a 
Arguments: {α : Sort u} {r : α → α → Prop} [IsIrrefl α r] (a : α)
Goal: ¬r a a
-- refl
theorem refl [IsRefl α r] (a : α) : a ≺ a 
Arguments: {α : Sort u} {r : α → α → Prop} [IsRefl α r] (a : α)
Goal: r a a
-- trans
theorem trans [IsTrans α r] {a b c : α} : a ≺ b → b ≺ c → a ≺ c 
Arguments: {α : Sort u} {r : α → α → Prop} [IsTrans α r] {a b c : α}
Goal: r a b → r b c → r a c
-- symm
theorem symm [IsSymm α r] {a b : α} : a ≺ b → b ≺ a 
Arguments: {α : Sort u} {r : α → α → Prop} [IsSymm α r] {a b : α}
Goal: r a b → r b a
-- antisymm
theorem antisymm [IsAntisymm α r] {a b : α} : a ≺ b → b ≺ a → a = b 
Arguments: {α : Sort u} {r : α → α → Prop} [IsAntisymm α r] {a b : α}
Goal: r a b → r b a → a = b
-- asymm
theorem asymm [IsAsymm α r] {a b : α} : a ≺ b → ¬b ≺ a 
Arguments: {α : Sort u} {r : α → α → Prop} [IsAsymm α r] {a b : α}
Goal: r a b → ¬r b a
-- trichotomous
theorem trichotomous [IsTrichotomous α r] : ∀ a b : α, a ≺ b ∨ a = b ∨ b ≺ a 
Arguments: {α : Sort u} {r : α → α → Prop} [IsTrichotomous α r] (a b : α)
Goal: r a b ∨ a = b ∨ r b a
-- incomp_trans
theorem incomp_trans [IsIncompTrans α r] {a b c : α} :
    ¬a ≺ b ∧ ¬b ≺ a → ¬b ≺ c ∧ ¬c ≺ b → ¬a ≺ c ∧ ¬c ≺ a 
Arguments: {α : Sort u} {r : α → α → Prop} [IsIncompTrans α r] {a b c : α}
Goal: ¬r a b ∧ ¬r b a → ¬r b c ∧ ¬r c b → ¬r a c ∧ ¬r c a
-- irrefl_of
@[elab_without_expected_type]
theorem irrefl_of [IsIrrefl α r] (a : α) : ¬a ≺ a 
Arguments: {α : Sort u} (r : α → α → Prop) [IsIrrefl α r] (a : α)
Goal: ¬r a a
-- refl_of
@[elab_without_expected_type]
theorem refl_of [IsRefl α r] (a : α) : a ≺ a 
Arguments: {α : Sort u} (r : α → α → Prop) [IsRefl α r] (a : α)
Goal: r a a
-- trans_of
@[elab_without_expected_type]
theorem trans_of [IsTrans α r] {a b c : α} : a ≺ b → b ≺ c → a ≺ c 
Arguments: {α : Sort u} (r : α → α → Prop) [IsTrans α r] {a b c : α}
Goal: r a b → r b c → r a c
-- symm_of
@[elab_without_expected_type]
theorem symm_of [IsSymm α r] {a b : α} : a ≺ b → b ≺ a 
Arguments: {α : Sort u} (r : α → α → Prop) [IsSymm α r] {a b : α}
Goal: r a b → r b a
-- asymm_of
@[elab_without_expected_type]
theorem asymm_of [IsAsymm α r] {a b : α} : a ≺ b → ¬b ≺ a 
Arguments: {α : Sort u} (r : α → α → Prop) [IsAsymm α r] {a b : α}
Goal: r a b → ¬r b a
-- total_of
@[elab_without_expected_type]
theorem total_of [IsTotal α r] (a b : α) : a ≺ b ∨ b ≺ a 
Arguments: {α : Sort u} (r : α → α → Prop) [IsTotal α r] (a b : α)
Goal: r a b ∨ r b a
-- trichotomous_of
@[elab_without_expected_type]
theorem trichotomous_of [IsTrichotomous α r] : ∀ a b : α, a ≺ b ∨ a = b ∨ b ≺ a 
Arguments: {α : Sort u} (r : α → α → Prop) [IsTrichotomous α r] (a b : α)
Goal: r a b ∨ a = b ∨ r b a
-- incomp_trans_of
@[elab_without_expected_type]
theorem incomp_trans_of [IsIncompTrans α r] {a b c : α} :
    ¬a ≺ b ∧ ¬b ≺ a → ¬b ≺ c ∧ ¬c ≺ b → ¬a ≺ c ∧ ¬c ≺ a 
Arguments: {α : Sort u} (r : α → α → Prop) [IsIncompTrans α r] {a b c : α}
Goal: ¬r a b ∧ ¬r b a → ¬r b c ∧ ¬r c b → ¬r a c ∧ ¬r c a
-- StrictWeakOrder.erefl
theorem erefl (a : α) : a ≈ a 
Arguments: {α : Sort u} {r : α → α → Prop} [IsStrictWeakOrder α r] (a : α)
Goal: StrictWeakOrder.Equiv a a
-- StrictWeakOrder.esymm
theorem esymm {a b : α} : a ≈ b → b ≈ a 
Arguments: {α : Sort u} {r : α → α → Prop} {a b : α}
Goal: StrictWeakOrder.Equiv a b → StrictWeakOrder.Equiv b a
-- StrictWeakOrder.etrans
theorem etrans {a b c : α} : a ≈ b → b ≈ c → a ≈ c 
Arguments: {α : Sort u} {r : α → α → Prop} [IsStrictWeakOrder α r] {a b c : α}
Goal: StrictWeakOrder.Equiv a b → StrictWeakOrder.Equiv b c → StrictWeakOrder.Equiv a c
-- StrictWeakOrder.not_lt_of_equiv
theorem not_lt_of_equiv {a b : α} : a ≈ b → ¬a ≺ b 
Arguments: {α : Sort u} {r : α → α → Prop} {a b : α}
Goal: StrictWeakOrder.Equiv a b → ¬r a b
-- StrictWeakOrder.not_lt_of_equiv'
theorem not_lt_of_equiv' {a b : α} : a ≈ b → ¬b ≺ a 
Arguments: {α : Sort u} {r : α → α → Prop} {a b : α}
Goal: StrictWeakOrder.Equiv a b → ¬r b a
-- isStrictWeakOrder_of_isTotalPreorder
theorem isStrictWeakOrder_of_isTotalPreorder {α : Sort u} {le : α → α → Prop} {lt : α → α → Prop}
    [DecidableRel le] [IsTotalPreorder α le] (h : ∀ a b, lt a b ↔ ¬le b a) :
    IsStrictWeakOrder α lt 
Arguments: {α : Sort u} {le lt : α → α → Prop} [DecidableRel le] [IsTotalPreorder α le] (h : ∀ (a b : α), lt a b ↔ ¬le b a)
Goal: IsStrictWeakOrder α lt
-- lt_of_lt_of_incomp
theorem lt_of_lt_of_incomp {α : Sort u} {lt : α → α → Prop} [IsStrictWeakOrder α lt]
    [DecidableRel lt] : ∀ {a b c}, lt a b → ¬lt b c ∧ ¬lt c b → lt a c 
Arguments: {α : Sort u} {lt : α → α → Prop} [IsStrictWeakOrder α lt] [DecidableRel lt] {a b c : α}
Goal: lt a b → ¬lt b c ∧ ¬lt c b → lt a c
-- lt_of_incomp_of_lt
theorem lt_of_incomp_of_lt {α : Sort u} {lt : α → α → Prop} [IsStrictWeakOrder α lt]
    [DecidableRel lt] : ∀ {a b c}, ¬lt a b ∧ ¬lt b a → lt b c → lt a c 
Arguments: {α : Sort u} {lt : α → α → Prop} [IsStrictWeakOrder α lt] [DecidableRel lt] {a b c : α}
Goal: ¬lt a b ∧ ¬lt b a → lt b c → lt a c
-- eq_of_incomp
theorem eq_of_incomp {α : Sort u} {lt : α → α → Prop} [IsTrichotomous α lt] {a b} :
    ¬lt a b ∧ ¬lt b a → a = b 
Arguments: {α : Sort u} {lt : α → α → Prop} [IsTrichotomous α lt] {a b : α}
Goal: ¬lt a b ∧ ¬lt b a → a = b
-- eq_of_eqv_lt
theorem eq_of_eqv_lt {α : Sort u} {lt : α → α → Prop} [IsTrichotomous α lt] {a b} :
    a ≈[lt]b → a = b 
Arguments: {α : Sort u} {lt : α → α → Prop} [IsTrichotomous α lt] {a b : α}
Goal: StrictWeakOrder.Equiv a b → a = b
-- incomp_iff_eq
theorem incomp_iff_eq {α : Sort u} {lt : α → α → Prop} [IsTrichotomous α lt] [IsIrrefl α lt] (a b) :
    ¬lt a b ∧ ¬lt b a ↔ a = b 
Arguments: {α : Sort u} {lt : α → α → Prop} [IsTrichotomous α lt] [IsIrrefl α lt] (a b : α)
Goal: ¬lt a b ∧ ¬lt b a ↔ a = b
-- eqv_lt_iff_eq
theorem eqv_lt_iff_eq {α : Sort u} {lt : α → α → Prop} [IsTrichotomous α lt] [IsIrrefl α lt] (a b) :
    a ≈[lt]b ↔ a = b 
Arguments: {α : Sort u} {lt : α → α → Prop} [IsTrichotomous α lt] [IsIrrefl α lt] (a b : α)
Goal: StrictWeakOrder.Equiv a b ↔ a = b
-- not_lt_of_lt
theorem not_lt_of_lt {α : Sort u} {lt : α → α → Prop} [IsStrictOrder α lt] {a b} :
    lt a b → ¬lt b a 
Arguments: {α : Sort u} {lt : α → α → Prop} [IsStrictOrder α lt] {a b : α}
Goal: lt a b → ¬lt b a
-- hammingDist_self
@[simp]
theorem hammingDist_self (x : ∀ i, β i) : hammingDist x x = 0 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] (x : (i : ι) → β i)
Goal: hammingDist x x = 0
-- hammingDist_nonneg
theorem hammingDist_nonneg {x y : ∀ i, β i} : 0 ≤ hammingDist x y 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] {x y : (i : ι) → β i}
Goal: 0 ≤ hammingDist x y
-- hammingDist_comm
theorem hammingDist_comm (x y : ∀ i, β i) : hammingDist x y = hammingDist y x 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] (x y : (i : ι) → β i)
Goal: hammingDist x y = hammingDist y x
-- hammingDist_triangle
theorem hammingDist_triangle (x y z : ∀ i, β i) :
    hammingDist x z ≤ hammingDist x y + hammingDist y z 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] (x y z : (i : ι) → β i)
Goal: hammingDist x z ≤ hammingDist x y + hammingDist y z
-- hammingDist_triangle_left
theorem hammingDist_triangle_left (x y z : ∀ i, β i) :
    hammingDist x y ≤ hammingDist z x + hammingDist z y 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] (x y z : (i : ι) → β i)
Goal: hammingDist x y ≤ hammingDist z x + hammingDist z y
-- hammingDist_triangle_right
theorem hammingDist_triangle_right (x y z : ∀ i, β i) :
    hammingDist x y ≤ hammingDist x z + hammingDist y z 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] (x y z : (i : ι) → β i)
Goal: hammingDist x y ≤ hammingDist x z + hammingDist y z
-- swap_hammingDist
theorem swap_hammingDist : swap (@hammingDist _ β _ _) = hammingDist 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)]
Goal: Function.swap hammingDist = hammingDist
-- eq_of_hammingDist_eq_zero
theorem eq_of_hammingDist_eq_zero {x y : ∀ i, β i} : hammingDist x y = 0 → x = y 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] {x y : (i : ι) → β i}
Goal: hammingDist x y = 0 → x = y
-- hammingDist_eq_zero
@[simp]
theorem hammingDist_eq_zero {x y : ∀ i, β i} : hammingDist x y = 0 ↔ x = y 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] {x y : (i : ι) → β i}
Goal: hammingDist x y = 0 ↔ x = y
-- hamming_zero_eq_dist
@[simp]
theorem hamming_zero_eq_dist {x y : ∀ i, β i} : 0 = hammingDist x y ↔ x = y 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] {x y : (i : ι) → β i}
Goal: 0 = hammingDist x y ↔ x = y
-- hammingDist_ne_zero
theorem hammingDist_ne_zero {x y : ∀ i, β i} : hammingDist x y ≠ 0 ↔ x ≠ y 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] {x y : (i : ι) → β i}
Goal: hammingDist x y ≠ 0 ↔ x ≠ y
-- hammingDist_pos
@[simp]
theorem hammingDist_pos {x y : ∀ i, β i} : 0 < hammingDist x y ↔ x ≠ y 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] {x y : (i : ι) → β i}
Goal: 0 < hammingDist x y ↔ x ≠ y
-- hammingDist_lt_one
theorem hammingDist_lt_one {x y : ∀ i, β i} : hammingDist x y < 1 ↔ x = y 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] {x y : (i : ι) → β i}
Goal: hammingDist x y < 1 ↔ x = y
-- hammingDist_le_card_fintype
theorem hammingDist_le_card_fintype {x y : ∀ i, β i} : hammingDist x y ≤ Fintype.card ι 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] {x y : (i : ι) → β i}
Goal: hammingDist x y ≤ Fintype.card ι
-- hammingDist_comp_le_hammingDist
theorem hammingDist_comp_le_hammingDist (f : ∀ i, γ i → β i) {x y : ∀ i, γ i} :
    (hammingDist (fun i => f i (x i)) fun i => f i (y i)) ≤ hammingDist x y 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] {γ : ι → Type u_4} [(i : ι) → DecidableEq (γ i)] (f : (i : ι) → γ i → β i) {x y : (i : ι) → γ i}
Goal: (hammingDist (fun i => f i (x i)) fun i => f i (y i)) ≤ hammingDist x y
-- hammingDist_comp
theorem hammingDist_comp (f : ∀ i, γ i → β i) {x y : ∀ i, γ i} (hf : ∀ i, Injective (f i)) :
    (hammingDist (fun i => f i (x i)) fun i => f i (y i)) = hammingDist x y 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] {γ : ι → Type u_4} [(i : ι) → DecidableEq (γ i)] (f : (i : ι) → γ i → β i) {x y : (i : ι) → γ i} (hf : ∀ (i : ι), Function.Injective (f i))
Goal: (hammingDist (fun i => f i (x i)) fun i => f i (y i)) = hammingDist x y
-- hammingDist_smul_le_hammingDist
theorem hammingDist_smul_le_hammingDist [∀ i, SMul α (β i)] {k : α} {x y : ∀ i, β i} :
    hammingDist (k • x) (k • y) ≤ hammingDist x y 
Arguments: {α : Type u_1} {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] [(i : ι) → SMul α (β i)] {k : α} {x y : (i : ι) → β i}
Goal: hammingDist (k • x) (k • y) ≤ hammingDist x y
-- hammingDist_smul
theorem hammingDist_smul [∀ i, SMul α (β i)] {k : α} {x y : ∀ i, β i}
    (hk : ∀ i, IsSMulRegular (β i) k) : hammingDist (k • x) (k • y) = hammingDist x y 
Arguments: {α : Type u_1} {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] [(i : ι) → SMul α (β i)] {k : α} {x y : (i : ι) → β i} (hk : ∀ (i : ι), IsSMulRegular (β i) k)
Goal: hammingDist (k • x) (k • y) = hammingDist x y
-- hammingDist_zero_right
@[simp]
theorem hammingDist_zero_right (x : ∀ i, β i) : hammingDist x 0 = hammingNorm x 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] [(i : ι) → Zero (β i)] (x : (i : ι) → β i)
Goal: hammingDist x 0 = hammingNorm x
-- hammingDist_zero_left
@[simp]
theorem hammingDist_zero_left : hammingDist (0 : ∀ i, β i) = hammingNorm 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] [(i : ι) → Zero (β i)]
Goal: hammingDist 0 = hammingNorm
-- hammingNorm_nonneg
-- @[simp] -- Porting note (#10618): simp can prove this
theorem hammingNorm_nonneg {x : ∀ i, β i} : 0 ≤ hammingNorm x 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] [(i : ι) → Zero (β i)] {x : (i : ι) → β i}
Goal: 0 ≤ hammingNorm x
-- hammingNorm_zero
@[simp]
theorem hammingNorm_zero : hammingNorm (0 : ∀ i, β i) = 0 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] [(i : ι) → Zero (β i)]
Goal: hammingNorm 0 = 0
-- hammingNorm_eq_zero
@[simp]
theorem hammingNorm_eq_zero {x : ∀ i, β i} : hammingNorm x = 0 ↔ x = 0 
Arguments: {ι : Type u_2} {β : ι → Type u_3} [Fintype ι] [(i : ι) → DecidableEq (β i)] [(i : ι) → Zero (β i)] {x : (i : ι) → β i}
Goal: hammingNorm x = 0 ↔ x = 0