ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- contMDiffWithinAt_iff_contMDiffOn_nhds
theorem contMDiffWithinAt_iff_contMDiffOn_nhds {n : ℕ} :
    ContMDiffWithinAt I I' n f s x ↔ ∃ u ∈ 𝓝[insert x s] x, ContMDiffOn I I' n f u 
Arguments: {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] [SmoothManifoldWithCorners I M] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {I' : ModelWithCorners 𝕜 E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] [SmoothManifoldWithCorners I' M'] {f : M → M'} {s : Set M} {x : M} {n : ℕ}
Goal: ContMDiffWithinAt I I' (↑n) f s x ↔ ∃ u ∈ 𝓝[insert x s] x, ContMDiffOn I I' (↑n) f u
-- contMDiffAt_iff_contMDiffOn_nhds
theorem contMDiffAt_iff_contMDiffOn_nhds {n : ℕ} :
    ContMDiffAt I I' n f x ↔ ∃ u ∈ 𝓝 x, ContMDiffOn I I' n f u 
Arguments: {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] [SmoothManifoldWithCorners I M] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {I' : ModelWithCorners 𝕜 E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] [SmoothManifoldWithCorners I' M'] {f : M → M'} {x : M} {n : ℕ}
Goal: ContMDiffAt I I' (↑n) f x ↔ ∃ u ∈ 𝓝 x, ContMDiffOn I I' (↑n) f u
-- contMDiffAt_iff_contMDiffAt_nhds
theorem contMDiffAt_iff_contMDiffAt_nhds {n : ℕ} :
    ContMDiffAt I I' n f x ↔ ∀ᶠ x' in 𝓝 x, ContMDiffAt I I' n f x' 
Arguments: {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] [SmoothManifoldWithCorners I M] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {I' : ModelWithCorners 𝕜 E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] [SmoothManifoldWithCorners I' M'] {f : M → M'} {x : M} {n : ℕ}
Goal: ContMDiffAt I I' (↑n) f x ↔ ∀ᶠ (x' : M) in 𝓝 x, ContMDiffAt I I' (↑n) f x'
-- ContMDiffWithinAt.congr
theorem ContMDiffWithinAt.congr (h : ContMDiffWithinAt I I' n f s x) (h₁ : ∀ y ∈ s, f₁ y = f y)
    (hx : f₁ x = f x) : ContMDiffWithinAt I I' n f₁ s x 
Arguments: {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {I' : ModelWithCorners 𝕜 E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f f₁ : M → M'} {s : Set M} {x : M} {n : ℕ∞} (h : ContMDiffWithinAt I I' n f s x) (h₁ : ∀ y ∈ s, f₁ y = f y) (hx : f₁ x = f x)
Goal: ContMDiffWithinAt I I' n f₁ s x
-- contMDiffWithinAt_congr
theorem contMDiffWithinAt_congr (h₁ : ∀ y ∈ s, f₁ y = f y) (hx : f₁ x = f x) :
    ContMDiffWithinAt I I' n f₁ s x ↔ ContMDiffWithinAt I I' n f s x 
Arguments: {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {I' : ModelWithCorners 𝕜 E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f f₁ : M → M'} {s : Set M} {x : M} {n : ℕ∞} (h₁ : ∀ y ∈ s, f₁ y = f y) (hx : f₁ x = f x)
Goal: ContMDiffWithinAt I I' n f₁ s x ↔ ContMDiffWithinAt I I' n f s x
-- ContMDiffWithinAt.congr_of_eventuallyEq
theorem ContMDiffWithinAt.congr_of_eventuallyEq (h : ContMDiffWithinAt I I' n f s x)
    (h₁ : f₁ =ᶠ[𝓝[s] x] f) (hx : f₁ x = f x) : ContMDiffWithinAt I I' n f₁ s x 
Arguments: {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {I' : ModelWithCorners 𝕜 E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f f₁ : M → M'} {s : Set M} {x : M} {n : ℕ∞} (h : ContMDiffWithinAt I I' n f s x) (h₁ : f₁ =ᶠ[𝓝[s] x] f) (hx : f₁ x = f x)
Goal: ContMDiffWithinAt I I' n f₁ s x
-- Filter.EventuallyEq.contMDiffWithinAt_iff
theorem Filter.EventuallyEq.contMDiffWithinAt_iff (h₁ : f₁ =ᶠ[𝓝[s] x] f) (hx : f₁ x = f x) :
    ContMDiffWithinAt I I' n f₁ s x ↔ ContMDiffWithinAt I I' n f s x 
Arguments: {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {I' : ModelWithCorners 𝕜 E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f f₁ : M → M'} {s : Set M} {x : M} {n : ℕ∞} (h₁ : f₁ =ᶠ[𝓝[s] x] f) (hx : f₁ x = f x)
Goal: ContMDiffWithinAt I I' n f₁ s x ↔ ContMDiffWithinAt I I' n f s x
-- ContMDiffAt.congr_of_eventuallyEq
theorem ContMDiffAt.congr_of_eventuallyEq (h : ContMDiffAt I I' n f x) (h₁ : f₁ =ᶠ[𝓝 x] f) :
    ContMDiffAt I I' n f₁ x 
Arguments: {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {I' : ModelWithCorners 𝕜 E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f f₁ : M → M'} {x : M} {n : ℕ∞} (h : ContMDiffAt I I' n f x) (h₁ : f₁ =ᶠ[𝓝 x] f)
Goal: ContMDiffAt I I' n f₁ x
-- Filter.EventuallyEq.contMDiffAt_iff
theorem Filter.EventuallyEq.contMDiffAt_iff (h₁ : f₁ =ᶠ[𝓝 x] f) :
    ContMDiffAt I I' n f₁ x ↔ ContMDiffAt I I' n f x 
Arguments: {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {I' : ModelWithCorners 𝕜 E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f f₁ : M → M'} {x : M} {n : ℕ∞} (h₁ : f₁ =ᶠ[𝓝 x] f)
Goal: ContMDiffAt I I' n f₁ x ↔ ContMDiffAt I I' n f x
-- ContMDiffOn.congr
theorem ContMDiffOn.congr (h : ContMDiffOn I I' n f s) (h₁ : ∀ y ∈ s, f₁ y = f y) :
    ContMDiffOn I I' n f₁ s 
Arguments: {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {I' : ModelWithCorners 𝕜 E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f f₁ : M → M'} {s : Set M} {n : ℕ∞} (h : ContMDiffOn I I' n f s) (h₁ : ∀ y ∈ s, f₁ y = f y)
Goal: ContMDiffOn I I' n f₁ s
-- contMDiffOn_congr
theorem contMDiffOn_congr (h₁ : ∀ y ∈ s, f₁ y = f y) :
    ContMDiffOn I I' n f₁ s ↔ ContMDiffOn I I' n f s 
Arguments: {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {I' : ModelWithCorners 𝕜 E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f f₁ : M → M'} {s : Set M} {n : ℕ∞} (h₁ : ∀ y ∈ s, f₁ y = f y)
Goal: ContMDiffOn I I' n f₁ s ↔ ContMDiffOn I I' n f s
-- ContMDiffOn.congr_mono
theorem ContMDiffOn.congr_mono (hf : ContMDiffOn I I' n f s) (h₁ : ∀ y ∈ s₁, f₁ y = f y)
    (hs : s₁ ⊆ s) : ContMDiffOn I I' n f₁ s₁ 
Arguments: {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {I' : ModelWithCorners 𝕜 E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f f₁ : M → M'} {s s₁ : Set M} {n : ℕ∞} (hf : ContMDiffOn I I' n f s) (h₁ : ∀ y ∈ s₁, f₁ y = f y) (hs : s₁ ⊆ s)
Goal: ContMDiffOn I I' n f₁ s₁
-- contMDiffOn_of_locally_contMDiffOn
theorem contMDiffOn_of_locally_contMDiffOn
    (h : ∀ x ∈ s, ∃ u, IsOpen u ∧ x ∈ u ∧ ContMDiffOn I I' n f (s ∩ u)) : ContMDiffOn I I' n f s 
Arguments: {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {I' : ModelWithCorners 𝕜 E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M → M'} {s : Set M} {n : ℕ∞} (h : ∀ x ∈ s, ∃ u, IsOpen u ∧ x ∈ u ∧ ContMDiffOn I I' n f (s ∩ u))
Goal: ContMDiffOn I I' n f s
-- contMDiff_of_locally_contMDiffOn
theorem contMDiff_of_locally_contMDiffOn (h : ∀ x, ∃ u, IsOpen u ∧ x ∈ u ∧ ContMDiffOn I I' n f u) :
    ContMDiff I I' n f 
Arguments: {𝕜 : Type u_1} [NontriviallyNormedField 𝕜] {E : Type u_2} [NormedAddCommGroup E] [NormedSpace 𝕜 E] {H : Type u_3} [TopologicalSpace H] {I : ModelWithCorners 𝕜 E H} {M : Type u_4} [TopologicalSpace M] [ChartedSpace H M] {E' : Type u_5} [NormedAddCommGroup E'] [NormedSpace 𝕜 E'] {H' : Type u_6} [TopologicalSpace H'] {I' : ModelWithCorners 𝕜 E' H'} {M' : Type u_7} [TopologicalSpace M'] [ChartedSpace H' M'] {f : M → M'} {n : ℕ∞} (h : ∀ (x : M), ∃ u, IsOpen u ∧ x ∈ u ∧ ContMDiffOn I I' n f u)
Goal: ContMDiff I I' n f
-- εNFA.subset_εClosure
@[simp]
theorem subset_εClosure (S : Set σ) : S ⊆ M.εClosure S 
Arguments: {α : Type u} {σ : Type v} (M : εNFA α σ) (S : Set σ)
Goal: S ⊆ M.εClosure S
-- εNFA.εClosure_empty
@[simp]
theorem εClosure_empty : M.εClosure ∅ = ∅ 
Arguments: {α : Type u} {σ : Type v} (M : εNFA α σ)
Goal: M.εClosure ∅ = ∅
-- εNFA.εClosure_univ
@[simp]
theorem εClosure_univ : M.εClosure univ = univ 
Arguments: {α : Type u} {σ : Type v} (M : εNFA α σ)
Goal: M.εClosure Set.univ = Set.univ
-- εNFA.mem_stepSet_iff
@[simp]
theorem mem_stepSet_iff : s ∈ M.stepSet S a ↔ ∃ t ∈ S, s ∈ M.εClosure (M.step t a) 
Arguments: {α : Type u} {σ : Type v} {M : εNFA α σ} {S : Set σ} {s : σ} {a : α}
Goal: s ∈ M.stepSet S a ↔ ∃ t ∈ S, s ∈ M.εClosure (M.step t (some a))
-- εNFA.stepSet_empty
@[simp]
theorem stepSet_empty (a : α) : M.stepSet ∅ a = ∅ 
Arguments: {α : Type u} {σ : Type v} {M : εNFA α σ} (a : α)
Goal: M.stepSet ∅ a = ∅
-- εNFA.evalFrom_nil
@[simp]
theorem evalFrom_nil (S : Set σ) : M.evalFrom S [] = M.εClosure S 
Arguments: {α : Type u} {σ : Type v} (M : εNFA α σ) (S : Set σ)
Goal: M.evalFrom S [] = M.εClosure S
-- εNFA.evalFrom_singleton
@[simp]
theorem evalFrom_singleton (S : Set σ) (a : α) : M.evalFrom S [a] = M.stepSet (M.εClosure S) a 
Arguments: {α : Type u} {σ : Type v} (M : εNFA α σ) (S : Set σ) (a : α)
Goal: M.evalFrom S [a] = M.stepSet (M.εClosure S) a
-- εNFA.evalFrom_append_singleton
@[simp]
theorem evalFrom_append_singleton (S : Set σ) (x : List α) (a : α) :
    M.evalFrom S (x ++ [a]) = M.stepSet (M.evalFrom S x) a 
Arguments: {α : Type u} {σ : Type v} (M : εNFA α σ) (S : Set σ) (x : List α) (a : α)
Goal: M.evalFrom S (x ++ [a]) = M.stepSet (M.evalFrom S x) a
-- εNFA.evalFrom_empty
@[simp]
theorem evalFrom_empty (x : List α) : M.evalFrom ∅ x = ∅ 
Arguments: {α : Type u} {σ : Type v} (M : εNFA α σ) (x : List α)
Goal: M.evalFrom ∅ x = ∅
-- εNFA.eval_nil
@[simp]
theorem eval_nil : M.eval [] = M.εClosure M.start 
Arguments: {α : Type u} {σ : Type v} (M : εNFA α σ)
Goal: M.eval [] = M.εClosure M.start
-- εNFA.eval_singleton
@[simp]
theorem eval_singleton (a : α) : M.eval [a] = M.stepSet (M.εClosure M.start) a 
Arguments: {α : Type u} {σ : Type v} (M : εNFA α σ) (a : α)
Goal: M.eval [a] = M.stepSet (M.εClosure M.start) a
-- εNFA.eval_append_singleton
@[simp]
theorem eval_append_singleton (x : List α) (a : α) : M.eval (x ++ [a]) = M.stepSet (M.eval x) a 
Arguments: {α : Type u} {σ : Type v} (M : εNFA α σ) (x : List α) (a : α)
Goal: M.eval (x ++ [a]) = M.stepSet (M.eval x) a
-- εNFA.toNFA_evalFrom_match
@[simp]
theorem toNFA_evalFrom_match (start : Set σ) :
    M.toNFA.evalFrom (M.εClosure start) = M.evalFrom start 
Arguments: {α : Type u} {σ : Type v} (M : εNFA α σ) (start : Set σ)
Goal: M.toNFA.evalFrom (M.εClosure start) = M.evalFrom start
-- εNFA.toNFA_correct
@[simp]
theorem toNFA_correct : M.toNFA.accepts = M.accepts 
Arguments: {α : Type u} {σ : Type v} (M : εNFA α σ)
Goal: M.toNFA.accepts = M.accepts
-- εNFA.pumping_lemma
theorem pumping_lemma [Fintype σ] {x : List α} (hx : x ∈ M.accepts)
    (hlen : Fintype.card (Set σ) ≤ List.length x) :
    ∃ a b c, x = a ++ b ++ c ∧
      a.length + b.length ≤ Fintype.card (Set σ) ∧ b ≠ [] ∧ {a} * {b}∗ * {c} ≤ M.accepts 
Arguments: {α : Type u} {σ : Type v} (M : εNFA α σ) [Fintype σ] {x : List α} (hx : x ∈ M.accepts) (hlen : Fintype.card (Set σ) ≤ x.length)
Goal: ∃ a b c, x = a ++ b ++ c ∧ a.length + b.length ≤ Fintype.card (Set σ) ∧ b ≠ [] ∧ {a} * {b}∗ * {c} ≤ M.accepts
-- NFA.toεNFA_εClosure
@[simp]
theorem toεNFA_εClosure (M : NFA α σ) (S : Set σ) : M.toεNFA.εClosure S = S 
Arguments: {α : Type u} {σ : Type v} (M : NFA α σ) (S : Set σ)
Goal: M.toεNFA.εClosure S = S
-- NFA.toεNFA_evalFrom_match
@[simp]
theorem toεNFA_evalFrom_match (M : NFA α σ) (start : Set σ) :
    M.toεNFA.evalFrom start = M.evalFrom start 
Arguments: {α : Type u} {σ : Type v} (M : NFA α σ) (start : Set σ)
Goal: M.toεNFA.evalFrom start = M.evalFrom start
-- NFA.toεNFA_correct
@[simp]
theorem toεNFA_correct (M : NFA α σ) : M.toεNFA.accepts = M.accepts 
Arguments: {α : Type u} {σ : Type v} (M : NFA α σ)
Goal: M.toεNFA.accepts = M.accepts
-- εNFA.step_zero
@[simp]
theorem step_zero (s a) : (0 : εNFA α σ).step s a = ∅ 
Arguments: {α : Type u} {σ : Type v} (s : σ) (a : Option α)
Goal: εNFA.step 0 s a = ∅
-- εNFA.step_one
@[simp]
theorem step_one (s a) : (1 : εNFA α σ).step s a = ∅ 
Arguments: {α : Type u} {σ : Type v} (s : σ) (a : Option α)
Goal: εNFA.step 1 s a = ∅
-- εNFA.start_zero
@[simp]
theorem start_zero : (0 : εNFA α σ).start = ∅ 
Arguments: {α : Type u} {σ : Type v}
Goal: εNFA.start 0 = ∅
-- εNFA.start_one
@[simp]
theorem start_one : (1 : εNFA α σ).start = univ 
Arguments: {α : Type u} {σ : Type v}
Goal: εNFA.start 1 = Set.univ
-- εNFA.accept_zero
@[simp]
theorem accept_zero : (0 : εNFA α σ).accept = ∅ 
Arguments: {α : Type u} {σ : Type v}
Goal: εNFA.accept 0 = ∅
-- εNFA.accept_one
@[simp]
theorem accept_one : (1 : εNFA α σ).accept = univ 
Arguments: {α : Type u} {σ : Type v}
Goal: εNFA.accept 1 = Set.univ
-- Language.zero_def
theorem zero_def : (0 : Language α) = (∅ : Set _) 
Arguments: {α : Type u_1}
Goal: 0 = ∅
-- Language.one_def
theorem one_def : (1 : Language α) = ({[]} : Set (List α)) 
Arguments: {α : Type u_1}
Goal: 1 = {[]}
-- Language.add_def
theorem add_def (l m : Language α) : l + m = (l ∪ m : Set (List α)) 
Arguments: {α : Type u_1} (l m : Language α)
Goal: l + m = l ∪ m
-- Language.mul_def
theorem mul_def (l m : Language α) : l * m = image2 (· ++ ·) l m 
Arguments: {α : Type u_1} (l m : Language α)
Goal: l * m = Set.image2 (fun x x_1 => x ++ x_1) l m
-- Language.kstar_def
lemma kstar_def (l : Language α) : l∗ = {x | ∃ L : List (List α), x = L.join ∧ ∀ y ∈ L, y ∈ l} 
Arguments: {α : Type u_1} (l : Language α)
Goal: l∗ = {x | ∃ L, x = L.join ∧ ∀ y ∈ L, y ∈ l}
-- Language.ext
@[ext]
theorem ext {l m : Language α} (h : ∀ (x : List α), x ∈ l ↔ x ∈ m) : l = m 
Arguments: {α : Type u_1} {l m : Language α} (h : ∀ (x : List α), x ∈ l ↔ x ∈ m)
Goal: l = m
-- Language.not_mem_zero
@[simp]
theorem not_mem_zero (x : List α) : x ∉ (0 : Language α) 
Arguments: {α : Type u_1} (x : List α)
Goal: x ∉ 0
-- Language.mem_one
@[simp]
theorem mem_one (x : List α) : x ∈ (1 : Language α) ↔ x = [] 
Arguments: {α : Type u_1} (x : List α)
Goal: x ∈ 1 ↔ x = []
-- Language.nil_mem_one
theorem nil_mem_one : [] ∈ (1 : Language α) 
Arguments: {α : Type u_1}
Goal: [] ∈ 1
-- Language.mem_add
theorem mem_add (l m : Language α) (x : List α) : x ∈ l + m ↔ x ∈ l ∨ x ∈ m 
Arguments: {α : Type u_1} (l m : Language α) (x : List α)
Goal: x ∈ l + m ↔ x ∈ l ∨ x ∈ m
-- Language.mem_mul
theorem mem_mul : x ∈ l * m ↔ ∃ a ∈ l, ∃ b ∈ m, a ++ b = x 
Arguments: {α : Type u_1} {l m : Language α} {x : List α}
Goal: x ∈ l * m ↔ ∃ a ∈ l, ∃ b ∈ m, a ++ b = x
-- Language.append_mem_mul
theorem append_mem_mul : a ∈ l → b ∈ m → a ++ b ∈ l * m 
Arguments: {α : Type u_1} {l m : Language α} {a b : List α}
Goal: a ∈ l → b ∈ m → a ++ b ∈ l * m
-- Language.mem_kstar
theorem mem_kstar : x ∈ l∗ ↔ ∃ L : List (List α), x = L.join ∧ ∀ y ∈ L, y ∈ l 
Arguments: {α : Type u_1} {l : Language α} {x : List α}
Goal: x ∈ l∗ ↔ ∃ L, x = L.join ∧ ∀ y ∈ L, y ∈ l
-- Language.join_mem_kstar
theorem join_mem_kstar {L : List (List α)} (h : ∀ y ∈ L, y ∈ l) : L.join ∈ l∗ 
Arguments: {α : Type u_1} {l : Language α} {L : List (List α)} (h : ∀ y ∈ L, y ∈ l)
Goal: L.join ∈ l∗
-- Language.nil_mem_kstar
theorem nil_mem_kstar (l : Language α) : [] ∈ l∗ 
Arguments: {α : Type u_1} (l : Language α)
Goal: [] ∈ l∗
-- Language.add_self
@[simp]
theorem add_self (l : Language α) : l + l = l 
Arguments: {α : Type u_1} (l : Language α)
Goal: l + l = l
-- Language.map_id
@[simp]
theorem map_id (l : Language α) : map id l = l 
Arguments: {α : Type u_1} (l : Language α)
Goal: (Language.map id) l = l
-- Language.map_map
@[simp]
theorem map_map (g : β → γ) (f : α → β) (l : Language α) : map g (map f l) = map (g ∘ f) l 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} (g : β → γ) (f : α → β) (l : Language α)
Goal: (Language.map g) ((Language.map f) l) = (Language.map (g ∘ f)) l
-- Language.mem_kstar_iff_exists_nonempty
lemma mem_kstar_iff_exists_nonempty {x : List α} :
    x ∈ l∗ ↔ ∃ S : List (List α), x = S.join ∧ ∀ y ∈ S, y ∈ l ∧ y ≠ [] 
Arguments: {α : Type u_1} {l : Language α} {x : List α}
Goal: x ∈ l∗ ↔ ∃ S, x = S.join ∧ ∀ y ∈ S, y ∈ l ∧ y ≠ []
-- Language.kstar_def_nonempty
theorem kstar_def_nonempty (l : Language α) :
    l∗ = { x | ∃ S : List (List α), x = S.join ∧ ∀ y ∈ S, y ∈ l ∧ y ≠ [] } 
Arguments: {α : Type u_1} (l : Language α)
Goal: l∗ = {x | ∃ S, x = S.join ∧ ∀ y ∈ S, y ∈ l ∧ y ≠ []}
-- Language.le_iff
theorem le_iff (l m : Language α) : l ≤ m ↔ l + m = m 
Arguments: {α : Type u_1} (l m : Language α)
Goal: l ≤ m ↔ l + m = m
-- Language.le_mul_congr
theorem le_mul_congr {l₁ l₂ m₁ m₂ : Language α} : l₁ ≤ m₁ → l₂ ≤ m₂ → l₁ * l₂ ≤ m₁ * m₂ 
Arguments: {α : Type u_1} {l₁ l₂ m₁ m₂ : Language α}
Goal: l₁ ≤ m₁ → l₂ ≤ m₂ → l₁ * l₂ ≤ m₁ * m₂
-- Language.le_add_congr
theorem le_add_congr {l₁ l₂ m₁ m₂ : Language α} : l₁ ≤ m₁ → l₂ ≤ m₂ → l₁ + l₂ ≤ m₁ + m₂ 
Arguments: {α : Type u_1} {l₁ l₂ m₁ m₂ : Language α}
Goal: l₁ ≤ m₁ → l₂ ≤ m₂ → l₁ + l₂ ≤ m₁ + m₂
-- Language.mem_iSup
theorem mem_iSup {ι : Sort v} {l : ι → Language α} {x : List α} : (x ∈ ⨆ i, l i) ↔ ∃ i, x ∈ l i 
Arguments: {α : Type u_1} {ι : Sort v} {l : ι → Language α} {x : List α}
Goal: x ∈ ⨆ i, l i ↔ ∃ i, x ∈ l i
-- Language.iSup_mul
theorem iSup_mul {ι : Sort v} (l : ι → Language α) (m : Language α) :
    (⨆ i, l i) * m = ⨆ i, l i * m 
Arguments: {α : Type u_1} {ι : Sort v} (l : ι → Language α) (m : Language α)
Goal: (⨆ i, l i) * m = ⨆ i, l i * m
-- Language.mul_iSup
theorem mul_iSup {ι : Sort v} (l : ι → Language α) (m : Language α) :
    (m * ⨆ i, l i) = ⨆ i, m * l i 
Arguments: {α : Type u_1} {ι : Sort v} (l : ι → Language α) (m : Language α)
Goal: m * ⨆ i, l i = ⨆ i, m * l i
-- Language.iSup_add
theorem iSup_add {ι : Sort v} [Nonempty ι] (l : ι → Language α) (m : Language α) :
    (⨆ i, l i) + m = ⨆ i, l i + m 
Arguments: {α : Type u_1} {ι : Sort v} [Nonempty ι] (l : ι → Language α) (m : Language α)
Goal: (⨆ i, l i) + m = ⨆ i, l i + m
-- Language.add_iSup
theorem add_iSup {ι : Sort v} [Nonempty ι] (l : ι → Language α) (m : Language α) :
    (m + ⨆ i, l i) = ⨆ i, m + l i 
Arguments: {α : Type u_1} {ι : Sort v} [Nonempty ι] (l : ι → Language α) (m : Language α)
Goal: m + ⨆ i, l i = ⨆ i, m + l i
-- Language.mem_pow
theorem mem_pow {l : Language α} {x : List α} {n : ℕ} :
    x ∈ l ^ n ↔ ∃ S : List (List α), x = S.join ∧ S.length = n ∧ ∀ y ∈ S, y ∈ l 
Arguments: {α : Type u_1} {l : Language α} {x : List α} {n : ℕ}
Goal: x ∈ l ^ n ↔ ∃ S, x = S.join ∧ S.length = n ∧ ∀ y ∈ S, y ∈ l
-- Language.kstar_eq_iSup_pow
theorem kstar_eq_iSup_pow (l : Language α) : l∗ = ⨆ i : ℕ, l ^ i 
Arguments: {α : Type u_1} (l : Language α)
Goal: l∗ = ⨆ i, l ^ i
-- Language.map_kstar
@[simp]
theorem map_kstar (f : α → β) (l : Language α) : map f l∗ = (map f l)∗ 
Arguments: {α : Type u_1} {β : Type u_2} (f : α → β) (l : Language α)
Goal: (Language.map f) l∗ = ((Language.map f) l)∗
-- Language.mul_self_kstar_comm
theorem mul_self_kstar_comm (l : Language α) : l∗ * l = l * l∗ 
Arguments: {α : Type u_1} (l : Language α)
Goal: l∗ * l = l * l∗
-- Language.one_add_self_mul_kstar_eq_kstar
@[simp]
theorem one_add_self_mul_kstar_eq_kstar (l : Language α) : 1 + l * l∗ = l∗ 
Arguments: {α : Type u_1} (l : Language α)
Goal: 1 + l * l∗ = l∗
-- Language.one_add_kstar_mul_self_eq_kstar
@[simp]
theorem one_add_kstar_mul_self_eq_kstar (l : Language α) : 1 + l∗ * l = l∗ 
Arguments: {α : Type u_1} (l : Language α)
Goal: 1 + l∗ * l = l∗
-- Language.mem_reverse
@[simp]
lemma mem_reverse : a ∈ l.reverse ↔ a.reverse ∈ l 
Arguments: {α : Type u_1} {l : Language α} {a : List α}
Goal: a ∈ l.reverse ↔ a.reverse ∈ l
-- Language.reverse_mem_reverse
lemma reverse_mem_reverse : a.reverse ∈ l.reverse ↔ a ∈ l 
Arguments: {α : Type u_1} {l : Language α} {a : List α}
Goal: a.reverse ∈ l.reverse ↔ a ∈ l
-- Language.reverse_eq_image
lemma reverse_eq_image (l : Language α) : l.reverse = List.reverse '' l 
Arguments: {α : Type u_1} (l : Language α)
Goal: l.reverse = List.reverse '' l
-- Language.reverse_zero
@[simp]
lemma reverse_zero : (0 : Language α).reverse = 0 
Arguments: {α : Type u_1}
Goal: Language.reverse 0 = 0
-- Language.reverse_one
@[simp]
lemma reverse_one : (1 : Language α).reverse = 1 
Arguments: {α : Type u_1}
Goal: Language.reverse 1 = 1
-- Language.reverse_involutive
lemma reverse_involutive : Function.Involutive (reverse : Language α → _) 
Arguments: {α : Type u_1}
Goal: Function.Involutive Language.reverse
-- Language.reverse_bijective
lemma reverse_bijective : Function.Bijective (reverse : Language α → _) 
Arguments: {α : Type u_1}
Goal: Function.Bijective Language.reverse
-- Language.reverse_injective
lemma reverse_injective : Function.Injective (reverse : Language α → _) 
Arguments: {α : Type u_1}
Goal: Function.Injective Language.reverse
-- Language.reverse_surjective
lemma reverse_surjective : Function.Surjective (reverse : Language α → _) 
Arguments: {α : Type u_1}
Goal: Function.Surjective Language.reverse
-- Language.reverse_reverse
@[simp]
lemma reverse_reverse (l : Language α) : l.reverse.reverse = l 
Arguments: {α : Type u_1} (l : Language α)
Goal: l.reverse.reverse = l
-- Language.reverse_add
@[simp]
lemma reverse_add (l m : Language α) : (l + m).reverse = l.reverse + m.reverse 
Arguments: {α : Type u_1} (l m : Language α)
Goal: (l + m).reverse = l.reverse + m.reverse
-- Language.reverse_mul
@[simp]
lemma reverse_mul (l m : Language α) : (l * m).reverse = m.reverse * l.reverse 
Arguments: {α : Type u_1} (l m : Language α)
Goal: (l * m).reverse = m.reverse * l.reverse
-- Language.reverse_iSup
@[simp]
lemma reverse_iSup {ι : Sort*} (l : ι → Language α) : (⨆ i, l i).reverse = ⨆ i, (l i).reverse 
Arguments: {α : Type u_1} {ι : Sort u_4} (l : ι → Language α)
Goal: (⨆ i, l i).reverse = ⨆ i, (l i).reverse
-- Language.reverse_iInf
@[simp]
lemma reverse_iInf {ι : Sort*} (l : ι → Language α) : (⨅ i, l i).reverse = ⨅ i, (l i).reverse 
Arguments: {α : Type u_1} {ι : Sort u_4} (l : ι → Language α)
Goal: (⨅ i, l i).reverse = ⨅ i, (l i).reverse